This was what I was told by an airline: Ignore what's printed under the name field on the passport info page. Instead, the first of the two lines of machine readable code at the bottom of that page (the ones that contain lots of "<"s) determines the proper last and first names. It will start with "PASGP" if you are a Singapore passport holder.
Example 1: PASGPTAN<<CHRISTOPHER<LEE<TAT<<<<<<<<<<<<<<
Last name: TAN, first name: CHRISTOPHER LEE TAT
Example 2: PASGPTEH<<MIN<LEE<BRENDA<<<<<<<<<<<<<
Last name: TEH, first name: MIN LEE BRENDA