I'm pretty sure no other airline would've done this. This is literally a technicality but exactly the kind of thing you expect the Japanese to block you over even though its their fault. What they should've done is verified the passengers name per passport and then amend the booking to match if needed. At the initial port of journey. And matched it with any codeshare.
Quite surprised the passenger is being blamed for trying to be truthful and getting screwed by the airline and suffering massively.