You basically have to do several things its more of a group of events rather than just a couple of expressions.
a) Create an array to hold your data
b) Fill that array with map data (this is where the level editor comes in)
c) Loop through that array (X,Y) and then place them as tiles on the layout/canvas offsetting the xpox and ypos of the tiles by the tile size * the array index
In trying to answer your questions :
1. leave the top rows blank (no data) or have your array size set to 50 tiles high and then offet before you start to draw it out on the layout.
2. You will need to either manually add them or loop through the array and then check the value of the tile, if that tile is dirt then check if the tile above is also dirt, if it is then if there are values for three tiles above rewrite them as stone, if not then 2, if not then just the one.
3. More advanced
If your not getting it I would recommend trying to create a Noughts and Crosses game with arrays, that will cover most of what you need to know without having to worry about having so many blocks.