you can still do halfangle (if you double the angle afterwards again:D). but teh ending math is about the same then. if you do halfangle per pixel, it works great. but for ps1.3 you have to do it per vertex, where it's inherently wrong. thats why i didn't suggest it by myself.
reflection is a dot, a mul, a sub.. halfangle requires two normalized vecs to get added, renormalized, then dotted, and then the angle-cosine doubled with some trigonometric identity.. takes longer. at least, on paper.