700 inputs and 50 outputs? That is easy! How about 1024 I/O ports?
Get 64 mcp23017 chips and two i2c mux.
You will then have 1024 i/o ports.
Wire up one mux and 32 mcp23017 chips to one I2C bus and the rest to the other I2c bus.
If you need a few more, get 16 MCP23s17 and put them on the SPI bus for a total of 1280 I/O ports on a single Rpi..
You can have a maximum of 8 muxes per I2C bus. 16ports*8 chips*4 mux channels*8 muxes* two I2c buses = 8192 I2C I/O ports.
When you get that high the additional 256 SPI I/O ports seem pointless.
There are other ways to use the muxes and only use one i2c bus and still have 1024 I/O ports. I like to use both i2c buses and keep the same topology on both. It makes programming easier.
I don't want to think about cascading muxes.