TMXLoader / PyTK is not the only one that does a similar thing where custom object A needs to be serialized before custom object B can be, while such a event would be a quick fix for the current issue, it would not fix the actual problem.
Thinking on it, the best solution would be for a secondary set of save events that fires multiple times on serialize/deserialize, in a fixed order: - Serialize items in Inventories - Serialize objects in maps - Serialize features in maps - Serialize maps in buildings - Serialize buildings in maps - Serialize maps in the locations array And then doing the exact reverse for deserializing. (The exact order / precision of serialization / deserialization would need to be discussed, but such a process is the only one I believe can ensure that everything is serialized generally) The only alternative I can think of is for SMAPI to provide a abstract set of serializables that mods extend from, and that SMAPI then handles serialization / deserialization of them.
You have a literal ton of errors, solve them top-to-bottom, starting with `No Soil Decay`, then `PyTK`, and `UI Info Suite`, then finally `Mayonnaise Plus Plus`. Literally the only explicit message from FA I see in your log is a error about you loading a save with furniture that got broken as a result of the recent changes to FA (Which the file description warns you about)