As the others have said, it could be any number of different factors. If you have a large room, then the amplification might be inadequate to play at high levels OR your speakers have peaks at certain high frequencies that can be painfully loud when the music hits certain notes.

With your setup, you'll likely start reaching the receiver's output limit around 95 db, depending on the distance to the listening position and your speakers' sensitivity. With a SPL meter ($40 at Radio Shack), check how high the levels are when you start noticing the sound characteristics change. If your listening level is above 90 db, then your receiver is likely outputing at least 10 watts/channel and won't take much more gain to reach the output limit.

Keep in mind that the wall and floor surfaces also reflect the sound waves at different levels for different frequencies. When the direct and reflected sounds interact with one another in close proximity and at nearly full amplitude (an echoey room with lots of hard reflective surfaces will do this), this can create time domain distortions and other interactions that make the overall sound harsher. The higher the volume, the more noticeable these interactions get.

First thing I would suggest is that you try hanging blankets or some other absorptive material along the front wall behind the speakers and along the sidewalls where the sound wave reflect. If the sound noticeably smooths out, then you'll know for sure that the room acoustics are more responsible than the amp, speaker, or source. In my room, I experimented with acoustic ceiling panels and was startled at how much they tightened up the imaging and smoothed out the overall sound. If deadening the room does not improve anything, then you need to start isolating the other potential causal effects.