This isn't normal.
If you let this continue you will be enabling him to waste his life.
Time for a potentially uncomfortable conversation. He won't like to hear the truth and you won't like telling him, but someone has to.
He's going to feel a lot worse about himself as the years go by. Imagine him bumping into a friend from school, they will likely mention their lives, their career, their home, their family, what will your son say in return?
"Yeah, I'm doing good, still living at home, what? No, I have the same job, saving up for a car though . . . ."
Imagine that conversation, when your son is 34 and his friend is married with kids, a nice house, head of something or other. It will be so embarrassing for your son.
I'd give him notice, twelve months, after that he must move out.
Don't baby him, he's a grown adult, time for some tough love.