Hi Somarl,
It's been a long time since I've haunted these forums (more than a year?) but I decided to come back and check in to see what was happening.
You've made a lot of progress! I remember helping you with sheer basics once upon a time.
I took interest in this thread because I use a similar method in my map editors. I use four paintable layers like so:
Layer 1: The ground. This layer is always drawn first.
Layer 2: Decorations. This layer is drawn second, so that it overlays the ground. I use this one to draw trees onto my ground, or tufts of grass, or bits of rock or wood, or pieces of furniture. This way, they overlay the floor tiles, creating a composite image. It means I don't have to have one tile for a rock on grass, then another for a rock on dirt, and another tile for a rock on sand. I just have a grass tile, a rock tile, and a sand tile, then one transparent tile with just a rock on it, and I just draw that on layer 2 so it overlays whatever ground I've got beneath it.
Layer3: Overhead. This layer draws after the first two, and *also* after I've drawn my characters, particles, etc, so they it obscures everything. You can use this layer for things like a canopy of leaves over a forest, or pieces of roof that hide other stuff from view, etc.
Layer4: Passability. This layer isn't drawn in the main game engine, but in the map editor I draw it after the overhead layer using transparent colored boxes. I draw green boxes over everything to show that this is a walkable tile (open ground), yellow boxes for not walkable but not solid either (used for things like tables - so gunshots, arrows, fireballs, etc as well as line of sight can pass across the table, but a player can't walk through it) and red for solid (blocks movement as well as projectiles and line of sight).
Using this method I can make secret paths, too - you can draw walls that look solid, and draw a roof above them on layer 3, but make just one of those wall tiles passable, along with a hidden corridor of passable tiles beyond it. That way a player will run into the walls and stop, unless he moves against it in exactly the right place - then it will admit him into the wall/secret passage, and he can move deep into the wall through this hidden passage and emerge somewhere else!
Good to see you're still around, Somarl!
EDIT: One other thought - when you save your map, consider writing just the values contained in the array, rather than prefixing the values with the word DATA to make actual copy+pastable code. Leave it in a raw numbers format - this might be more difficult for a human to read, but it's easier for a machine to read; once you have this file (consider it an export, a map data file), you can have your main game engine load the same file (instead of writing the values, read them!) and populate your array with those values. That way the map can be edited on the fly, and you don't need to recompile your whole game every time you make a change to a map.