Dedicated Minecraft Java worlds inevitably face rapid and uncontrolled storage growth over extended operating periods. Players exploring with Elytra, hunting for distant trial chambers, or searching for rare biomes generate thousands of square kilometers of terrain, the overwhelming majority of which is visited only once. These bloated region files (.mca) drastically increase backup generation times, lengthen rsync synchronization windows, and impose unnecessary I/O overhead on the host server.
Manually deleting arbitrary region files from the region/ directory is dangerous and irresponsible: doing so invariably destroys player builds, resets established bases, and breaks world structure seeds. Reliable world optimization demands selective chunk trimming powered by player activity heuristics (InhabitedTime) and strict coordinate exclusion filters using dedicated tools such as MCA Selector.
Preparing an Offline World Copy and Measuring Storage Footprint#
Directly pruning binary Anvil region files on an active server is strictly prohibited. The Minecraft server daemon holds active file descriptors for loaded region files and periodically flushes dirty chunk memory pages to storage. Modifying region files concurrently corrupts header offset tables and invalidates sector pointers.
Prior to executing any pruning operation, stop the server systemd daemon, measure initial disk consumption using du, and establish a complete filesystem snapshot using rsync:
systemctl stop minecraft-paper.service
du -sh /srv/minecraft/paper/world
rsync -aAXv --delete /srv/minecraft/paper/world/ /srv/minecraft/backworlds/world-pre-trim/
Creating an isolated clone with extended attributes preserved (-aAXv) guarantees an immediate recovery path should filter logic inadvertently flag populated structures.
Chunk Filtering Criteria: InhabitedTime and Coordinate Protection#
The Minecraft chunk save format records an InhabitedTime NBT counter for every chunk, representing the cumulative game ticks spent by all players within its boundaries. Chunks that players merely flew through at Elytra velocities maintain an InhabitedTime below 1200–2400 ticks (1–2 minutes), whereas active settlement areas, mob farms, and central storage vaults accumulate dozens of hours.
However, relying strictly on activity counters poses risks: a freshly built outlying outpost might only have registered a few seconds of occupancy. MCA Selector resolves this vulnerability through composite query expressions that combine activity thresholds with coordinate exclusion zones around key settlements and world spawn.
MCA Selector can execute in headless batch CLI mode on Linux servers or via its local GUI:
java -jar /opt/mcaselector/mcaselector-2.4.jar \
--mode delete \
--world /srv/minecraft/paper/world \
--query "InhabitedTime < 120 and (x < -1024 or x > 1024 or z < -1024 or z > 1024)"
In this query rule, all chunks located within a 1024-block bounding radius from the world spawn origin are permanently exempt from deletion regardless of activity, protecting core municipal server infrastructure.
Synchronized Pruning Across Region, POI, and Entities Directories#
A critical error common to inexperienced server operators is targeting only the root world/region/ directory. Since Minecraft versions 1.14 and 1.17, world data is segregated across three parallel directory trees:
region/— terrain blocks, biome identifiers, and block states;poi/(Points of Interest) — villager workstation links, beds, bells, and nether portals;entities/— persistence records for mobs, vehicles, boats, and item frames.
Deleting a chunk from region/ while leaving obsolete data inside poi/ or entities/ results in severe runtime anomalies upon terrain regeneration: villager job linking desynchronizes, and duplicate entities can trigger persistent server tick crashes.
A reliable maintenance pipeline prunes all three directory trees in strict lockstep. Administrators can audit the resulting file distribution across dimensions using standard shell tools:
ls -1 /srv/minecraft/paper/world/region | wc -l
ls -1 /srv/minecraft/paper/world/poi | wc -l
ls -1 /srv/minecraft/paper/world/entities | wc -l
The count in poi and entities may legitimately remain lower than or equal to region, as regions void of interactive entities or point-of-interest markers are omitted from disk entirely.
Permissions Audit, Service Restart, and Seam Validation#
Once trimming concludes, file permissions must be audited. When external tools are executed under root privileges, modified or newly allocated index sectors can become unreadable to the unprivileged minecraft daemon.
Apply recursive user ownership, measure final storage savings, and bring the server service back online:
chown -R minecraft:minecraft /srv/minecraft/paper/world
du -sh /srv/minecraft/paper/world
systemctl start minecraft-paper.service
Following server boot, administrators should enter the world and verify transition borders: borders between preserved legacy chunks and purged chunks blend smoothly thanks to Minecraft 1.18+ native biome blending routines.
To maintain optimal I/O throughput and eliminate tedious manual disk pruning workflows, deploy your gaming infrastructure on an integrated game server platform equipped with automated storage management.
References#
- MCA Selector Official Repository & Documentation: https://github.com/Querz/mcaselector
- Minecraft Anvil Region Binary Format Specification: https://minecraft.wiki/w/Region_file_format
- PaperMC World Optimization and Administration Guide: https://docs.papermc.io/paper/admin/reference/world-configuration




