Angular momentum is a vector and we should be needing three quantities to specify it completely. What am I missing?
This is a very interesting feature of quantum theories. Remember that, classically, you would need the doublet $(x, p) $ to specify the state of a system. But in QM, $\psi (x) $ specifies the full state. $\psi (p) $ can be determined using a Fourier transform. Even the energy spectrum is sufficient for specifying the state.
This is because $X$, $P$ or $H$ span a complete eigenbasis on their own, because of the axiom $[X, P]=i\hbar$, which makes $X$ and $P$ dependent. Classically, (in the KvN formulation), this axiom would be $[X, P]=0$, so the information about both $X$ and $P$ would be needed to be specified independently in the simultaneous wavefunction $\psi (x, p) $.
So the answer to this question is that $L^2$ and $L_z$ form a complete eigenbasis. Actually, $L^2$ or $L_z$ alone form a complete eigenbasis, just like $X$, $P$ and $H$ do. But we use their simultaneous eigenbasis so we can bypass their degeneracy and uniquely label the states. The spectrum of $L_x$ and $L_y$ can be obtained through a change of basis.