As for its etymology, Mazzagatti can also be compared with some other Italian surnames having a similar meaning, such as Pelagatti (literally 'cat skinner'), Scanagatta (literally 'cat slaughterer'), Pelagagge (literally 'magpie skinner'), etc.
In the past, these expressions were used either as occupational names or as derogatory nicknames: in Old Italian, for example, a 'pelacani' (literally 'dog skinner') was either a tanner or, in a figurative meaning, a "low-class and coarse person" (see
http://dizionari.hoepli.it/Dizionario_Italiano/parola/pelacani.aspx?idD=1&Query=pelacani&lettera=P), a 'pelagatti' was a nickname for a 'swindler', a 'cheat' (see
http://dizionari.hoepli.it/Dizionario_Italiano/parola/pelagatti.aspx?idD=1&Query=pelagatti&lettera=P), a 'pelagrilli' (literally 'cricket skinner') was a nickname for a 'stingy' or 'tight-fisted' person (see
http://dizionari.hoepli.it/Dizionario_Italiano/parola/pelagrilli.aspx?idD=1&Query=pelagrilli&lettera=P), etc.