Step 1: DON'T PANIC!! It's very uncomfortable whaen your opponent starts throwing his entire kingside at you, but remain calm. It's tempting to imagine that your opponent knows what he's doing and has a deep attacking plan, but unless he's highly rated, he is probably just sticking his chin out for you to land the fatal counterpunch.
Step 2: Stay alert, because your chances will come. You played the opening pretty well and White was very overextended. I think you missed a better chance if you had played 12...Nh5 instead if 12...Ne8. We're used to avoiding the Knight on the rim, but in this case, there are weak Kingside squares for you to invade. 12...Nh5 in conjunction with a later Ne5 and possible e6 should open up White's kingside. In the meantime, your g7 Bishop is radiating force down the long diagonal. There might even be a Rb2 in your future. I like your game, although there;s plenty of fighting to come.
Step 3: Grab your opportunities. You missed a nice shot on move 15. 15...Nxe3 was much better that 15...Bxc3 (16.Bxe3? Bxc3+ 17.Bd2 Bxa1 18.Qxa1 Bf5). You were right that 23...Ng7 was a mistake and gave White a great chance, but 23...Kg8 would have kept you comfortably ahead.
You're right about move 15. I missed a good opportunity to pick up the exchange. I suppose my mind was on the lines of "what can I do with my knight?" seeings as it was attacked twice and defended once so instead I saw a line which picked up a pawn as opposed to taking the exchange!
So my idea of vacating my king far away from the h file (though I never properly achieved it) was wrong and it was better to just stay on g8?
I've learned to allow the kingside pawns advancing and to recapture with my f pawns instead of h pawns to not allow open h files against my king. My opponent played annoyingly though, cramping my position as much as he could and the result was that both sides had poor development and white had over extended his pawns.
Here's a game I just finished playing. It features my opponent storming pawns down onto my kingside and although I managed to win the game purely because of my opponent's poor play and blunders I still find it a very difficult style to face.