Bem vindo ao "DIY".

Em relação a sua pergunta inicial, sobre os 32 botões - que é o máximo utilizável no Windows, sem uso de keymappers:
Voce tem duas opções para ligar estes botões no Arduino e evitar que apertando 3 ou mais ao mesmo tempo apareça outro botão
aceso, fenomeno chamado "keyboard ghosting", comum em ligações em matrix, que são as ligações cruzando linhas, exemplo num teclado comum de computador.
Ligar com uma MATRIX de diodos ou usar um circuito "Shift Register".
Matrix significa combinar linhas x colunas - pinos especificos no Arduino, de 1x2 o que permite ligar 4 botões, a 6x6 que permite ligar os 32 mais 1 HAT (4 botões) = 36.
Acredito que este exemplo "desenhado", ligando 4 botões e 1 HAT explique isso melhor:

Em resumo, numa matrix 6x6 cada linha é compartilhada em até 6 botões e cada coluna é compartilhada em até 6 botões.
Pode ser confeccionada uma placa (PCB) com os diodos e pinos para ligações - mas não precisa se ligar como no desenho acima, que é o ideal para começar.
"Shift Register" são placas adicionais com um circuito integrado CD4021B e resitores, cada uma capaz de controlar até 8 botões.
Na foto do MMJoy2 "pirata" logo acima é esta placa com 4 chips onde estão ligados os botões, switches e encoders.
A vantagem da placa "Shift Register" é conseguir ligações usando menos fios, conveniente num joystick com muitos botões, ex. HOTAS Cougar/Warthog que usam o sistema.