Well, it is what I do, having buttons with two (or more) frames. For a simple button, frame 1 is at rest, frame 2 is when hovered over and frame 3 is when clicked. If wanting animated button, then range a-b is at rest, c-d when hovering and e-f when pressed.
Though I suppose, since you're re-using a translucent image to signify hover - you could put this into a sprite that is overlayed over a button whenever the pointer is within the area of a button. So every time you hover over a button, you move the translucent sprite over it (by giving it the same coordinates as the button in question) and set it to visible. And when the pointer is outside the button again, you simply hide the translucent sprite, and have it ready for getting new coordinates and being visible again.