Старая таблица AXES имела неправильный порядок:
+X, -X, +Y, -Y, +Z, -Z
Это давало невалидные rotation matrices (rx_id=0, ry_id=0 → rx=ry=+X,
что не ортогонально). Detерминант часто получался 0.
Правильный порядок из rbx-dom:
R0=+X, R1=+Y, R2=+Z, R3=-X, R4=-Y, R5=-Z
Формула: orientation_id - 1 = rx_axis * 6 + ry_axis
где rx — куда смотрит локальная +X (правая грань),
ry — куда смотрит локальная +Y (верхняя).
Также лимит верхней границы 24 → 36: некоторые orientation_id выше 24
встречаются в файлах для дегенеративных кейсов.
Проверено на arch4_2007_base.rbxl: 492 Part, теперь все ротации валидны
(det=+1). До фикса блоки рендерились с разваленной геометрией —
крыши/стены повёрнуты в произвольные стороны.
Deploy rbxl_types.py на VM 130.