I'm going to use a microcontroller to read 80 digital inputs (push button switches). 
I'm wondering (just to understand, I don't have any critical time constraint) if it would take less time using multiplexing over a 9\*9 matrix (but using one shift register on the rows to reduce used pins on the uC, and columns directly connected to the uC) or using 10x chained shift registers (74HC165).
I'm having hard time calculting that, so I'm asking for some clarification. Also, how does that change if I use SPI. 
Other assumptions:
- uC: arduino uno
- I'd like to consider also the time needed in software to provide the data in a "clean" format. 
Thanks