If you use the 'A' flag instead of the 'a' flag in your pack template, ascii strings should be space padded (0x20) instead of null padded. I don't know if that will help or not though.
I can't imagine it will be easy to unpack that data correctly. I certainly wouldn't want to write the template by hand.
I thought about using something like
this module to convert the profile struct for use in PERL, but I haven't attempted it yet.