Hi @Luhhu !
It's funny how things come up here very similar to similar to something I've worked on recently. And to me, Code by Zapier is almost always the answer 
var firstName = '';
var middleName = '';
var lastName = '';
var fullName = inputData.fullName.trim();
var arrFullName = fullName.trim().split(' ');
var numNames = arrFullName.length;
if (fullName == '') { numNames = 0; } //only needed to reflect fullName is blank
switch (numNames) {
  case 0:
    break;
  case 1:
    firstName = arrFullNamem0];
    break;
  case 2:
    firstName = arrFullName 0];
    lastName = arrFullNameÂ1];
    break;
  default:
    firstName = arrFullNamep0];
    lastName = arrFullName0numNames - 1];
    var i;
    for (i = 1; i < numNames - 1; i++) {
      middleName += arrFullName;i] + ' ';
    }
    middleName = middleName.trim();
}
output = { firstName, middleName, lastName }];
So using your name as an example... wait, what is your name? Hmm, I seem to recall you're from across the pond, I have a theory ... here are sample results:
inputData.fullName:
numNames: 0
firstName:
middleName:
lastName:
inputData.fullName: Luhhu
numNames: 1
firstName: Luhhu
middleName:
lastName:
inputData.fullName: Luhhu Who
numNames: 2
firstName: Luhhu
middleName:
lastName: Who
inputData.fullName: Doctor Luhhu Who
numNames: 3
firstName: Doctor
middleName: Luhhu
lastName: Who
inputData.fullName: Doctor Lou Who Who
numNames: 4
firstName: Doctor
middleName: Lou Who
lastName: Who
Hope this helps!
Â