I'd say Virgo 80%, Leo 75%, Gemini or Pisces being less than 30% of a chance.
- He's very egotistical. Like no joke, he's got an ego the size of China.--- Virgo men tend to be insecure, so they like to put on a front of confidence. Leos think they deserve to be worshiped as God's gift to mankind.
- Despite his appearance. (He's quite short, and average looking), he's very confident, and constantly goes round charming and flirting with girls, even though he's got a long term girlfriend. --- Virgo, they need to know they've got it even though they might be with the loves of their lives. They are okay-looking guys, but do tend to be more on the average height end of the stick. This part sounds like a Leo. Huge flirts. Can't keep their pants on types.
- Which he has dinner with her family all the time. --- Virgo, man of routine. Man of consideration. Man of obligation. Leo, likes to hear himself talk. Likes the recognition of being called a great and dedicated boyfriend.
- But when he isn't charming or flirting girls, he's moody as hell. And always looks like he's about to kill someone! --- Virgo or Cancer, one day he's in the mood to talk and be friendly, one day he's solitary and quiet.
- He also gives off this mysterious vibe.--- Pisces, mysterious men, but open up like a book once you get to know them.
- He's very funny, and witty. Can sway people to like him within a split second. --- Gemini quality to boot. Virgos try very hard to be funny. It takes a very giving person to find one funny though.
- Attracts a lot of haters though. ---Virgo/Leo. Hard to say. Any sign can attract a hater, and this guy being as egotistical as you described him, could also be the reason why he reels in the haters.
21 years of experience