> Unless those are actually padded to 32 bits in the VM or something.
They are.
They are.
And since Java doesn't expose pointer guts, struct padding is purely a runtime optimization concern, not a language concern.
The `fast` typedefs are effectively programmer-opted-in to promotion to register size or something. But compiler optimizations often do the same thing on a per-operation level (signed overflow is UB, unsigned overflow masking can be deferred for addition/subtraction/multiplication and bitwise ops (though some can change the mask)).