As of MacOS 10.3 Apple moved away from the binary encoded nib files, and towards the xml encoded XIB files, for their interface definitions.
The xib file format is actually quite easy to understand, it is the responsability of the object encodeing and decoding, it to insure that it's attributes are read correctly.
Here is a commented example of a XIB file. For easy reading open it in a syntax highliting editor using XML highlighting.
To provide cross platform compatability, review the "XIB fields" section of the gnustep wiki article on the interface you intend to provide a codec for. Also be sure to read the apple article on KVC.