Forms that ask for names should just as for the name and not try to force the developers cultural view of how names are constructed on the user.
If the system _is_ designed to require a first name/last name, trying to correct for that on the front-end just makes the problem worse in my opinion (e.g. doing something like breaking on space and calling the first bit the "first name" and the second bit the "surname").
But overall, for global optimization, I'm a fan of legal/preferred.
That said, global inclusivity does seem to be more important.
I work on ERP software. Name-handling is ridiculously over-complicated. FML, preferred, chosen (distinct from preferred), prior/maiden, legal/mailing, etc.