Scrap that, I failed to understand my own code. It's been well over two years since I coded that stuff (and it was havily bruteforced).
No, the issue was the saturation (the 'amount' parameter), it was originally saved into regionLightLevel. I wanted LUMINANCE/BRIGHTNESS to go into there, so I moved luminance into regionLightLevel, and saturation into the fourth byte of regionTintLevel (which was originally used with the TINT_IS_ENABLED flag to check if the tint was enabled).
I probably wanted to add a regionSaturationLevel or something, but I was a rookie at AGS spaghetticode manipulation and AGS.Native's source was not yet released.
TL;DR: saturation was saved into brightness, workarounds ensued.
- Alan