I really goofed on posting that 'spam' code. The whole first instance of
on *:TEXT:# (your original code) should be replaced with the second instance.

RE: !mute , I am unfamiliar with the code
mode $chan +bb ~q: $+ $address($2,2)

I suspect that the ~q parameter may be in the ircd. We have an eggdrop bot, which always kicks on a ban,
so I've never been able to use /ban as a 'silencing' command.
That said, if the channel is in moderated mode, de-voicing ought to effectively silence a nick,
so simply removing the above line should restrict it's effect to only voiced nicks.

This is my understanding of the modes, and I may be wrong.

As to the blacklist script, it actually makes no sense to me.
Who is the *I* who must not be kicked 5 times?
It seems it ought to be the bot, in which case it makes no sense to me
for that code to be loaded anywhere but in the bot.
Also if there is no other code, like an on KICK to increase the variable %kick.$chan
and write the channel name to black.ini when it reaches 5, it's not doing anything useful.