fixed point is taught wrong. instead of saying "to multiply two fixed point values you have to multiply them then shift them back into position" what it really should be is "when you multiply two fixed point values the result has a fractional precision in bits equal to the sum of the fractional precision of the two fixed point types multiplied"

@eniko I learned about fixed-point math from what's effectively the GBA development standard, tonc. I believe it describes the same thing you're saying, but with different phrasing:

"Not only do the decimals multiply, the scales multiply as well."

https://gbadev.net/tonc/fixed.html#ssec-fmath-ops

Appendix B - Fixed-point math & LUTs - Tonc - GBA Programming in rot13

GBA Programming tutorial