Sort of. The general idea is the same however the use of it is different. It also uses a different set of addresses to store it's data (Position, tables etc)
Again, you can find all that information on where it stores it's data on the RAM map.
What do you mean by "starting" the code? If you mean where for example score sprite 0B starts then that's at the label ScoreSprite0B:
If you mean how to spawn a sprite then you usually do it by calling a routine. If there is no routine to spawn your sprite type then you have to write one yourself usually by looping through your table to find a free slot then storing your sprite's "ID" in the corresponding table. You then update X/Y positions etc
In the case of score sprites the table is for your sprite number is at $16E1 so you'd want to do something like:
CodeLDX #$05 ; The table is 6 bytes long
.loop
LDA $16E1,x ; Load current score sprite ID
BEQ .foundslot ; If it's 0 then there is no score sprite in that slot so we branch to ".foundslot"
DEX : BPL .loop ; Decrease slot number and branch back to ".loop" to check the next one.
RTS ; If the code reaches here there are no free score sprite slots.
.foundslot
RTS; If the code reaches here it found a free score sprite slot and you can start updating X/Y positions for your sprite.