The last practice of the veteran minicamp went spectacularly, according to a beaming Jim Harbaugh. But I’ll be honest: I don’t know what a bad NFL practice looks like. Guys constantly jumping offsides during drills? Anyway, the 49ers’ were full of energy on Thursday afternoon. Here’s what I noticed, along with a few pictures (not as many as last time, because I hit the field a little while after practice started and cameras weren’t allowed after the first hour).

– The afternoon was highlighted by several nice catches. Kendall Hunter made a fantastic across the middle on a pass thrown by Josh Johnson, then made a couple nifty moves to make it to the end zone untouched. Afterward, Johnson ran over and gave a congratulatory slap to Hunter’s helmet as the two headed to the sideline.

– Michael Crabtree (who was wearing No. 85, which meant the only way you could tell him apart from Vernon Davis from afar was the fact that Crabtree was wearing long sleeves under his jersey) made a couple nice grabs on passes at close range (less than 10 yards).

– The best catch I saw all day came from … wait for it … Brian Tyms, who went high to snatch a 30-yard pass over two defenders.

– Second place: A.J. Jenkins, who caught a touchdown in the corner of the end zone that was set up by Colin Kaepernick rolling out to his left. I got pictures of the play, although the picture of Jenkins actually making the catch is pretty blurry because I was still in the process of moving my line of sight from Kaepernick to Jenkins.

On the play, Kaepernick starts by looking to his right, then down the middle, then to the left. After finding nothing, he rolls out and finds Jenkins, who as you’ll see in the bottom left of the sixth picture follows his QB’s path as he escapes the “pressure.”

– Kaepernick was great all afternoon, garnering considerable praise from Harbaugh. He sure looked like the obvious No. 2 quarterback, at least from what I could tell from a practice in mid-June.

– On the defensive side, here were a few notable plays: C.J. Spillman deflected (and almost intercepted) a Scott Tolzein pass; Parys Haralson nullified a Jewel Hampton catch by knocking the ball out of his hands; Tavares Gooden (a very loud, enthusiastic player) deflected a pass from Alex Smith that was intended for Bruce Miller; Deante Purvis dropped a would-be interception on a pass from Tolzein that would’ve resulted in a defensive touchdown; rookie safety Trenton Robinson made a nice play to break up a pass intended for Vernon Davis; there were a couple “sacks” (no contact) of Alex Smith during situational drills, but due to our distance from the play and the angle (behind the opposite end zone) I couldn’t tell which defender made either play.

– It seemed like a priority was having Aldon Smith work in coverage, which makes sense if he’s to become an every down player. Here’s Aldon talking to Mario Manningham and others during a brief rest period.

The lighter side of practice

– One thing I didn’t know before covering a couple of these sessions was how much the players like to celebrate touchdowns, even the ones that don’t count. Kaepernick threw a short TD pass to Vernon Davis, and he flipped the ball 20 feet into the air — and that was one of the tamer celebrations. The one that stuck out was after Kyle Williams caught a TD pass from Alex Smith, Joe Staley came up to him and did a little celebratory jig. Then Williams handed the ball to Jonathan Goodwin, who spiked it the old fashioned way. Good height on the spike, by the way.

– At the end of practice, the music got turned up very loud. The first song: “Machinehead,” by Bush. The second? “Gonna Make You Sweat (Everybody Dance Now)” by C+C Music Factory, which led to some humorous dancing from Gooden, Spillman and Ricky Jean Francois. I almost asked Harbaugh afterward if the music came from his iPod, but thought better of it.