Die Kombinierung eines Arduino Leonardo mit einer Joystick bibliothek und 2 bis 3 MCP23017

schau dir das Breakoutboard vom SX1509 und die Library von Sparkfun an.
Das ist ein I2C IC mit dem du bis zu 64 Buttons aus der Matrix einlesen kannst.

https://learn.sparkfun.com/tutorials/sx1509-io-expander-breakout-hookup-guide

entweder original von Sparkfun oder von Aliexpress

ist imho einfacher, als mit MCPs selber zu multiplexen, wobei du wenn du mal die Suche bemühst, hier auch etwas finden würdest.