Der MCP23017 hat 3 Adress-Pins die in die I2C-Adresse eingehen. 3Bit sind 8 Moeglichkeiten und darum kannst du 8 MCP23017 in einem I2C Bus verwenden.
Gruesse Uwe
Jo 2³ Adressen. Ich war vorhin nur etwas verwirrt

Die I2C Adresse setzt sich aus einem fixen Teil ( oberste 4 Bit, beim MCP23017 ist das 0100 ) und 3 Bit die mit 3 Anschluessen eingestellt werden koennen. Zusammen 7 Bit. Siehe Seite 8 von
http://ww1.microchip.com/downloads/en/devicedoc/21952b.pdfMoegliche Adressen von 32 bis 39 dezimal.
So kannst Du 8 Adressen an 8 MCP23017 vergeben.
Falls Du noch mehr Aus/Eingaenge brauchst kannst Du die MCP23S17 Variante nehmen (SPI Interface) und den CS ueber einen Demultiplexer zb einen 74HC138 (8 Ausgaenge) oder 74HC154 (16 Ausgaenge) oder mehrere Kaskadieren.
Alternative ist auch wie Spaceball sagt den PCA9548 zu verwenden um 8 I2C-Busse zu erzeugen die einzeln angesteuert werden (durch 3 Adressbit) und wo in jedem SubBus die gleichen Adressen vorhanden sein koennen: also 8 x 8 MCP23017 mit 16 Ein/Ausgaengen, also zusammen 1024 Ein/Ausgaengen
Gruesse Uwe