Updated collision math to use vector projection - looks like it's working...