Used the known-good decoder rather than my own broken one. My version had three errors: the delta stream starts at table+16 not +8, the tag bits are 0x40/0x80/0xC0 rather than 0/1/2, and slots carry the +16 fixup base. Sanity check passes -- on REGN the tool returns header slots 0x70-0x84 exactly. On MCOL, over all 11: the header-region relocated slots are exactly 0x54, 0x58, 0x5C and 0x74 (11/11); 0x5C resolves to 0x80, the first byte after the header (11/11); and 0x74 resolves to eight bytes before the first array pointer (10/11). So MCOL has four top-level pointers where REGN has six. 92.7% of gaps between consecutive relocated words are 32 bytes, in 7-127 contiguous runs per object, which with the 0x74 offset reads as arrays of 32-byte records each carrying a pointer at +8. The four targets are two float blocks, a block of small ints / u16 pairs, and counts followed by the record array -- the shape of a mesh, stated as a reading of the shape since none of the blocks is decoded. Open: the record layout, what the index block indexes, the one object where 0x74 does not land 8 before the array, and whether the 7.3% non-32 gaps are just run boundaries.