A switch doesn't alter the frame, and source/destination mac addresses remain how sending host specified them,so let me say it again Layer 2 Switching never changes the frames means no changes in MAC and in CRC values,switches either flood, forward, or filter MAC addresses. Since they do transparent bridging by nature!
Every single port on a switch has its own mac address then what are they used for?
there are some posts and discussion over this subject but there is no clear satisfying valid answer.
in this link here the guy says Switch changes the source mac address to its own port MAC addresses when want to flood or do any kinda transmission but provides no reference to that which kinda seems to be wrong!