Alpha23's XMA Transform script has a lot of logic for XMA parsing, you might try that.
[edit] better yet, according to this thread, VGMToolbox can do this for you.
edited 1:07 AM EDT April 26, 2016
Well, anyway, you can parse the files with
xma_test file.xma -o 100 -r out.xma -B
but then you have to do crap with the header and blah.
[edit]
Here's what I did that finally worked: 1. I used the VGMToolbox XMA Converter preset at the end of this post (this one properly does the rebuilding)
2. In the .POS File Maker I used the following settings (there seems to be a space for presets but it is empty when I run it, maybe broken in r1013): Output File Mask: $B.WAV Loop Start is at Offset (second radio button): 0xc0 and has size 4 and byte order Big Endian Loop End Loop End is at Offset (second radio button): 0xc4 and has size 4 and byte order Big Endian Compare Loop End to total WAV samples
and ran that on all the .xma with the .wav in the same dir.
It seems to have worked out ok, though I have not checked closely. It does not handle what I think are channels beyond the front 2.
To make things easy (for once), here's the decoded audio (key !zV1zMHR4_gF-Lkctj6v_7Lpm0psYCOnZ1v6VssQ4POo ).
As noted, this is only the stereo channels, it looks like VGMToolbox doesn't have a mechanism for dealing with more than one stream per file, so you'd have to run it with different start offsets for each pair of channels (and LFE might be mono), then reinterleave. 0x100 is the stereo pair seen here, 0x900 and 0x1100 are the others.