64+ inputs in Arduino

You can capture the state of as many digital inputs at one time as you want by having them connected to parallel/serial shift registers.
Use 1 Latch/clock pin to capture all inputs at one time, then SPI.transfer()s to move the string as bytes into an array, and send out the array.

On the other hand, if you want a keypad, then the keypad.h library will support a 72-button keypad with 17 pins, or 81-button keypad with 18 pins.