100+ encoders

Let's say you have 128 encoders. Each has 2 outputs. You connect 4 encoders to 1 pcf8574. So you need 32 pcf chips. That gives rise to 2 problems: max 8 pcf chips on an i2c bus; 32 interrupt lines.

For the interrupt lines, you could use another 4 pcf chips to reduce 32 down to 4 interrupt lines. That's probably still too many. One more pcf chip reduces that to 1 interrupt line. That's now 37 pcf chips!

A TCA9548A i2c multiplexer would overcome the problem of the number of pcf chips. You can buy these on breakout boards from AdaFruit or eBay. You could put the 5 pcf chips that deal with the interrupt lines on one bus. Then put the remaining 32 pcf chips on 4 more busses in groups of 8 chips.

So... an interrupt happens. You switch the multiplexer to bus 0. You read the first pcf chip. This tells you which of the other 4 pcf chips received the interrupt. You then read that chip. That tells you which of the remaining 32 chips sent the interrupt. You then set the multiplexer the appropriate bus so that you can then read the pcf chip who's data has changed.

This is 2 writes and 3 reads of the i2c bus to get the data. I2c is not that fast, so I'm not certain this would work. But it's an idea...