There isn't really a working excuse for a broken schema.
Just have a blanket 'name' field.
The name someone wants to be called and their legal name isn't necessarily the same, either. If you're writing normal software, you shouldn't really care about these legal provisions. I guess you'd want a 'Billing Name' too in most cases.