The unordered_map with 2768 string keys (~100KB+) was causing OOM crashes at beginTocPass() on ESP32-C3's limited ~380KB RAM. Reverted createTocEntry() to use original O(n) spine file scan instead. Kept the safe spineToTocIndex vector in buildBookBin() (only ~5.5KB).