What if the name has spaces in it? How do you differentiate reliably between a middle name and a name with spaces? It gets even worst when there may have been previous transforms, like forcing family name to be the last name.
Frequently someone's /name/ is part of a mailing ADDRESS. You can, and maybe should, limit this to a individual lines. However the only way to be SURE is to give an actual freeform multi-line input box, like a textarea.
If you want a string to greet someone as, ask for that, and store it separately.
If you want a title to display within a directory listing, accept that.
Generally, do not decompose things for your users, EXCEPT possibly client side while populating form elements for their convenience (and verification/correction).