Why reverse-engineer? The format (known as "Apple XML property list") has always been openly documented:
https://developer.apple.com/library/mac/documentation/Cocoa/...
There are also many libraries available to decode and encode these files in various languages.
The reason why XML property lists look this way is that they were a direct translation of the older NeXT "property list" format, which was sort of like binary JSON. Dumping an alternating list of keys and values isn't pretty XML, but it ensured minimum translation headaches from the old format.