Hi zippy,
multiplexing devices is not a good idea. Depending on the number of devices to be controlled, e.g. controlling a motor it has to share the multiplexed signal with all other devices which would lead to undesired off-times.
I assumed you want to use 64 switches to switch the same number of peripheral devices which you can do with the least pin count of the MCU by using two wire I/O-expanders. Your choice of the PCA9555 is a bit low. The MAX7300 offers 28 I/O-pins.
Using 64 pushbuttons the matrix will occupy two full ports of the MCU. You just need to connect the necessary number of I/O-expanders (via 2-wire interface) to get 64 peripheral devices to work, depending on the button you press. (Toggle function must be in the software).
The I/O-expander won't care what the peripheral device is as long as the signal levels between I/O and device interface are the same.
Boncuk