> the tileset is cutoff because I was planning on putting the object panel underneath
I wondered if that was why that was happening. If so, I think that's totally fine as long as you can zoom and pan inside the tileset window. (Indeed, I suspect a lot of tilesets are small and need to be zoomed-in to be usable anyway, like 8x8 and 16x16 tilesets - you'd want to see them larger than that anyway for easy selection.)
> I've been thinking about how I can support Undo/Redo
Since you've already got JSON saving/loading in place, I'll bet you could just bump off a JSON save to a stack of strings after every edit, and when you hit undo, pull that string from the stack and load it. You're already got the hard part done - serializing the map data.
Looking forward to the next version!