Angle between two vectors in >2 dimensions

I know that $\displaystyle \mathbf{a} \cdot \mathbf{b} = |\mathbf{a}| \, |\mathbf{b}| \cos \theta$. I understand this in two dimensions, and even follow the proof from the law of cosines. But I'm struggling to see how there can be 'an' angle between two vectors in, say, 3 dimensions (my linear algebra book simply explains it for two dimensions, says that it holds true for all dimensions, and leaves it at that.) Surely there would have to be two angles to accurately describe the relationship between them?

I'd also appreciate any help in understanding how the proof from the law of cosines works in >2 dimensions -- a triangle can't be >2 dimensional (although it can exist in higher dimensional spaces, as a two dimensional figure), so I'm struggling to see how it can be applicable (perhaps proof by induction, as with Pythag and $\displaystyle \mathbf{v} \cdot \mathbf{v} = |\mathbf{v}|^2$ -- but I don't see how.)

I've Googled extensively and searched this forum, but I haven't found an explanation of this anywhere -- perhaps it's obvious to others, but not to me.

Thanks,