As others have said, this is an interesting concept that could certainly be expanded. It certainly has more content than my first Ludum Dare, and I did that with a large team. However, the interface here was so frustrating that I felt compelled to stop upon encountering the fire level in the second screenshot, and the level design for introducing the mechanics felt unnecessarily architected and pedantic. For me, half the fun of playing a game is understanding the mechanics and overcoming the challenges intuitively after learning that I have an ability rather than being told how to approach situations.
You said you wanted some suggestions on how you could improve Fire.
The general mechanics in the game are actually quite simple: you can pick up and drop objects, you can move, and you can jump.
Let me talk about the controls first. I can think of various alternate approaches that would reduce frustration with the mapping. Your main concern seems to be with the ability to interact with the world based on your orientation.
If you want your avatar to have an orientation, displaying that in the interface seems like a bad approach. Why not use visuals to make it apparent? You could have eyes on your avatar (even a few pixels of a different shade would be effective), and you could map space to jump instead of w. Then your character could look at everything without any trouble, and you could get rid of the p key for interaction mode. Concise modeless interfaces are almost always superior to those with multiple modes.
What about interacting with objects? Do you need to make building and destroying distinct keys? If not, you could just bind e to build and destroy, based on whether there is anything in your path. If this could lead to unintentional creation/destruction (which is something you will want to playtest and consider during level design), then that would be a bad choice. If you can use the context-sensitive creation/destruction but don't want to use orientation (which might be better), you could use ijkl for directional placement and keep wasd for moving and jumping.
Let's say you want to keep orientation and also need to maintain a distinction between creation/destruction. What if you bound the mouse buttons to create/destroy and were to use it to alter your orientation?
What about level design?
Examples of games that pull this off really well are Knytt Stories (a free download), Super Meat Boy, and Braid. Play some of them to see what they do well in terms of level progression. They all introduce mechanics one at a time and allow the player to explore what they can accomplish with them before introducing any others. They introduce obstacles and trust that players will discover how to overcome them by themselves. Games are an interactive medium. I would recommend that you not tell players how to overcome challenges, make the level design teach them how.
Lets look at a simple example from Fire: movement and jumping.
I might approach this by first making a level with nothing but an exit. I wouldn't say that it is an exit. If it looks inviting, players will walk towards it.
Then I might make a level with a small gap and give one instruction, either in the form of a visual icon of the jump button or with the message "Press _ to Jump."
Some gaps are unjumpable. I might make the next level contain a large gap over a valley that contains a block resource. I would then communicate how to pick up/drop objects. The player would inevitably discover that the only way to proceed is to pick up and drop the block at the edge of the valley.
This ended up being much longer than intended, but I hope it helped to some degree. I'm interested in what you come up with for your next LD. Good luck!