Проблема в том что больше 4 мег ардуино не увидит. Там какой-то баг или фича от разработчиков чипа. Так что зря потратились.
В заголовке темы просто перепутаны байты и биты. 32Мб - это 4 Meгабайт flash, т.к. в корпусе, который идет в место для пайки flash нет распространенных 32МБ (Мега-Байт или 256 Мбит) flash. Есть только 128 Мб (16 МБ).
Обычно, если требуется разница указания между МБ и Mб, то "Б" большое указывает на большую величину - байты
ESP8266 аппаратно поддерживает 24 бита адреса в контроллере Flash (16 МБ), а
XIP всего 1МБ.
У SPI-Flash с большими объемами, чем 24 бита адреса, есть специальные команды переключения банков (BRRD Bank Register Read 0x16.. , BRWR Bank Register Write 0x17..).
Все остальные ограничения искусственные = программные, специально введенные кем-то.