Range measured: all 27 levels, 1123 chunks.
Method: group chunks by their 16-byte header; for each distinct header,
collect the set of strides seen across every level it appears on.
Result: only 64 distinct headers across 1123 chunks. The header is a type
identifier, not a per-chunk descriptor -- the same 16 bytes recur on every
level. And 63 of those 64 imply exactly one stride, so header to record layout
is very nearly a function.
The exception is header 7542eff271b522a79e45348cca4509ff, seen with strides 76,
92 and 104. Either three types share a header or one is a misparse.
This also settles the previous entry's open question about D/E/F being
incidental. Grouping by header bytes 9 and 13:
DE 26 chunks, 2 strides (184, 344)
EE 1050 chunks, 46 strides
EF 34 chunks, 2 strides (268, 640)
FF 13 chunks, 1 stride (520)
Rare tags are tightly coupled to their layouts -- FF is a single stride across
all 13 chunks -- while EE is heterogeneous. That is what a type tag looks
like.
Consequence: a chunk can be dispatched on its header to a record layout, and
63 of 64 headers give that layout's size without inspecting a record. First
point in this container where a field does real work rather than correlating.
Still open: what the 64 types mean, which record fields are
index/length/offset, and whether any type is moby_anim.