I dunno what everyone's bashing on you for.
You've got friends who you look like you're having a blast with, you've got a girlfriend that looks as into you as you are into her, and you seem like a genuine dude.
Too many dudes try to be fake, and are just unpleasant to be around. I don't sense any sort of narcissism in your pictures. I think that's awesome.
However, on your style... I don't really like it all that much.
http://a301.ac-images.myspacecdn.com/images01/48/l_a9a1bb9c0ed64db14d68a7d1cfaae254.jpg
Your T-Shirt is too big in that picture. Try some slimmer fitting clothing. And that color doesn't suit your skin tone. Get a tan and bulk a bit more, but don't lose those abs man!! I should take my own advice because I'm a scrawny ass. Hard to hit the gym often when you're a full time student and working full time. (One of the reasons I don't have time for a girlfriend now)
Spray-on tans suck and look absolutely fake if they're not done by a professional! Tanning should usually cost you around $3 per tan. You are put in a private room with the tanning bed, so nobody sees you undress. Totally private.
http://a451.ac-images.myspacecdn.com/images01/50/l_1928fb4f65483817ee31eae29dd1ecca.jpg
Lose those shorts man... They're not vintage... They're just... Ughh.. Just get rid of them. Your T-Shirt sleeves are too long and loose and don't go with those shorts. It looks more like a T-Shirt you'd wear for soccer. Like I said, go for some slimmer fitting clothing since you do have the body. Show it off. Need I say anything about those slippers? Lose em! Hehe
Get a pair of nice jeans. You're thin man... Use it to your advantage. Slim-fit boot cut/straight cut jeans are awesome. If you don't feel like dishing out $300 for a pair of designers, then just settle for some AnF. Slim is the key to your look right now. You'd look ridiculous with loose clothing. It's best to ask the opinion of the girls that work at the clothing stores, since they know a lot of the clothing there really well since they're around it all the time. They know what will look best over time.
Btw, I think your hair would look way ****ing better in a faux hawk. I'm not even kidding. Do a #3 on the sides, and tell your hair stylist to blend it with the top and to style the top as a bed-head look and you can style it as a faux hawk later when it starts to grow out.
http://www.niata.net/cropshop/faux_hawk/fauxhawk1.html
Enough of that.. Hehe, sorry if it sounds like I'm criticizing you. I'm not!
Take it easy man!