yes, gamepad data is stored in 16 bit integer, technically you can use BTN func with 0-15 indexes even for single player but I don't recommend to do it. What if user want to use real gamepad to play your game with 16 buttons? add another mapping for gamepads?
So, if you use BTN func with 0-7 indexes for single player game it will cover all platforms without problem I think.