You don't have to use a signal. That's probably how I would do it.
You're calling this in main.gd:
add_child(new_mob)
That's adding the mob as a child of the current node. Isn't that the main node?
Instead of using a signal, declare the count in main.gd, at the top before any functions:
var count: int
In main.gd's _ready function:
count = 0
In main.gd's spawn_mob function, after new_mob has been initialized:
new_mob.main = self
In mob.gd, at the top before any functions:
var main: Node
In mob.gd, when a mob dies:
main.count += 1