Those are viable methods too if I understood correctly. Though they have drawbacks compared to what I did, I will definitely keep in mind your one method to load the tilemap data as a whole manually, because that would allow for more intricate animations than what I did. The method to load a new tilemap image also could be handy for an entire tilemap animating every tile at the same speed.
Mine just basically gets rid of the need for an entire image for each frame of the tilemap so you won't have redundant repeats of the same graphic for tiles that are static. Also allows for different tiles to animate at different speeds. The downside is that the replace() expression could hypothetically conflict and seriously mess up the tilemap, displacing tiles and all kinds of nasty things you'd probably never want. lol
Hopefully in the future Ashley makes it where we can do animation frames on a per-tile basis. Obviously it's not essential because we have three very feasible work arounds to animating tiles despite C3 has no built in tile animation. Just would streamline the process and probably require less processing than what we're doing. I see he did things like being able to turn off tile collisions. Also would be cool if he added some functionality like Tiled has, such as tile properties, so we can do some really complex stuff just with the tilemap alone without needing separate objects like detectors.