Here in Brazil, it is very common to have "compound names" which are just... two given names you have to use together, for example "Ana Maria", AND it is also common to have "middle names" which are neither family names, nor given. My name, for example, is Leonardo Giovanni Scur, but "Leonardo" is my given name that I respond and expect people to call me by, and "Scur" is the family name. "Giovanni" only exists in documents, basically.
So, the first question is, what are you using their names for? If you are a paid service that identifies users to other users by name, ask for a "billing name" for your legal/policy needs, and a "display name" for identification, don't attribute any structure to it. If you don't need a legally identifying name, just ask for the "display name", and let people name themselves "Sir Bearington of Nunya Biznis".