yeah, the 4 MB gets split into multiple partitions, and you end up with like 200Kb of space.

spiffs is the part that defines the actual storage area we have access to
0x30000 is 196,608 byte, or 192KB
The 8MB also gets split similarly, and you end up with a little over 1MB
This is because you need a section of Flash for the actual program, and then an equivalent section to support OTA updates saving the firmware copy locally before replacing (or however that happens…).