I was thinking about implementing a system where any changes to the objects in my game would be written to a log. Then, to save the level I just need to save the log. When I reload the level, I load it as it was designed and replay the saved log. Each object in the level has a unique ID which should make this pretty easy to implement. Things like new objects being created would be logged as well.