- Fixed block hopper placement not being blocked at the limit BlockPlaceEvent fires after the block is placed, so the scan already counted it; using canPlace (which adds +1) caused the effective limit to be limit - 1
- Fixed hopper minecart spawning not being blocked at the limit same off-by-one issue in EntitySpawnEvent
- Fixed hopper minecart cache double-counting the scan already counted a newly spawned cart, but the cache was also being incremented manually on allow, inflating the count by 1 per cart
- Fixed off-hand hopper minecart placement bypassing all limit checks
- Fixed periodic validator incorrectly removing hoppers that were exactly at the limit overflow removal now only triggers when count is strictly over the limit
