I already figured out most of the pmod enabling me to extract geometry. What I need help with is the bones/joints and animation data which I suspect to be inside pliv.
witch_hr.zip (Size: 153.67 KB / Downloads: 175)
In this attachment there's pliv portion of the file and I added the mesh it should fit with in Collada format. The joints are scrambled but the vertex weights are included. If you can, try to figure out a way to extract a skeleton from the pliv file that fits this mesh.
Now here're my findings. It's little endian. "U-" stands for "unknown". And you may need to divide some values by 1024 for the scale to match with the mesh.
4 Bytes > "PLM$" String
2 Bytes > U-Size value
20 Bytes > U-Data-A
7*U-Size Bytes > U-Data-B
1 Byte > Joint-Count value (in this example 0x4D)
32 Bytes > U-Data-C
39*Joint-Count > Joint-Data
So each joint has 39 bytes, the first 3 bytes I think usually goes like 0xff, joint-id, parent-joint-id. Then I suspect comes the animation data. First joint's ID is 0x00 while last is 0x4C.
U-Data-C might actually be the first joint's data but if you check the last joint's data, I think it is something separate. Check it with hex editor and you should be able to see what I'm talking about. It might be the armature's data.