On firmwares 9.0.0+, the HID shared memory won't update values for the controller libnx uses, unless it is explicitely specified as supported. The fix is as simple as changing the bitflag passed to nn::hid::SetSupportedNpadStyleSet, from 0x1f to 0x6000001f (see here).
Aarch64 doesn't allow loading immediate values of size bigger than 16-bit unsigned, so we need to split the loading into two instructions:
becomes:
However, this removes the error handling for the above function (_hidActivateNpad).