This is an issue with how Sponge uses the method
getTileData from Forge to save tile entities, unfortunately, MagicBooks is doing some awkward recursion by overriding
getTileData to instead re-run
writeOnNBT as can be seen here. Since this is an unnecessary override for a use case very specific to Sponge (so that it can too write it’s own custom data without storing said custom data in extra places), the proper “fix” would be to remove the unnecessary overrides in the tile entities source code for MagicBooks.
Optimally, we’d properly suggest said change in a PR to the repository of the mod with some explanation as above. I can’t guarantee I’ll be able to get to it too, but @kashike @blood and maybe @Aaron1011 may be able to get to doing said PR sooner than I can.