# Recover162-vector direction codec60317 and60408 RE-550. Reproduce with `python3 scripts/analyze_qvm_direction_codec.py`; check with `python3 scripts/test_qvm_direction_codec.py`. The [machine report](qvm-direction-codec.json) retains source identity and bounded fixtures. All162 direction vectors are read from source data address21732 with12-byte stride.60317 does not normalize its input: it scans all entries, starting best dot0/index0, replacing only on strict greater. Negative inputs and zero inputs are retained as finite cases; a null pointer returns0 before any scan.60408 accepts signed indices0 through161 and copies the initialized21348 zero vector otherwise.326 encoder cases cover each vector, its negative, zero and null; decoder cases cover every valid index and three invalid controls. This recovers the numeric event-parameter producer needed by the wall-contact path; live table mutation and the event's user-visible meaning remain unverified. No original executable/full QVM/native collision/physics/rendering executes. Native responses and legal input domains are supplied or unverified where stated; full runtime/macOS/Linux Rust/Bevy/Solari gameplay remains open.