Code readability is something we push pretty hard so the problem with this representation is it's a bit more cryptic code. There is a reason that we essentially never use bitwise flags anywhere in the code. Normally when we do things like that we find a way to use enums or #define types. And I wouldn't say saving two bytes is way more efficient, especially when you are actually adding two multiplications below that aren't needed in any current code path.

Also typically the up sides of trying to create a general framework like this (e.g. inversion on other axis) aren't worth it when we don't have an immediate plan to use them. They end up just creating code cruft (like the other lines modified below) that end up not quite fitting the application in the future. Especially for something like this where it is so easy to add later. (see agile programming model)

Maybe @solidgoldbomb or @lilvinz can comment since they tend to be more code aficionados than I am.