Ok, thanks for the extra info.
To answer your question, the mcp23017 has 3 address pins, which means 8 can be connected to the same i2c bus. That gives you 128 inputs. However, by using additional Arduino pins to connect to the MCP address pins, you can overcome that limit.
If you use 74hc165, you would need 18 chips and 3 Arduino pins. You can buy 10 for US $0.81 on AliExpress.
But if you're determined to keep the cost down, a matrix would be cheaper and simpler. Just not sure it can be done with those modules. Maybe with the bare photodiodes.