It sounds like the cat was not properly socialized to play politely, so you'll have to teach him manners as well as redirect his energy into toys.
Normally, when two cats play and one cat gets too rough for the other, the hurt cat will yowl/hiss and stop playing. This is a signal to the over aggressive cat that he needs to tone down his play since he's causing harm. You need to take the place of the other cats. When he hurts you, cry out (owie, or if mimic a cat pain sound, just pick something and be consistent) and then stop playing and remove yourself from the situation (if you're walking across the room, maybe sit down in a nearby chair and pick your feet up off the ground? Going to have to be a little creative there). The message that you're trying to send to your cat is "that hurt, stop it!"
Next you want to make sure that your cat's energy is redirected through playtime. You say that your cat has plenty of toys, but the best toys are interactive wand toys that you can control to mimic prey animals (such as Da Bird). Generally, you should have at least one play session each day (until he gets tired), then feed him. This should prompt him to go into the natural hunt-eat-groom-sleep cycle.
If your cat is repeatedly attacking and scaring when you're walking across the room, consider that it may not just be play aggression. Your cat may have been kicked before you got him. A kicked cat will show fear/aggression around feet.
If you believe this may be the case for your cat, I recomend providing as many elevated towers/shelves/walkways as you can (especially in close areas such as hallways) so that your cat can avoid being on the same level as those scary feet. One good resource for ideas is Jackson Galaxy's Catification Pages.
Finally, if you do decide to get a second cat, I would look at getting an older cat (maybe 4-5 years?) who will be tolerant of your teenaged cat's antics, but can provide a mentor-type relationship. Any rescue that has home fosters should have a pretty good idea of their cat's personalities and should be able to help you find a cat that would be a good fit for your current cat.