As you're talking about a core, perhaps there are ways to skip STP in the core and only use it closer to the access layer. After all, LAG and MLAG are often used to mitigate the need for older loop resolution protocols like STP and EAPS. Would it be possible to have a lot of smaller STP loops from the distribution and down, not involving the core? I tend to recommend staying away from STP except for disabling access ports that are accidentally looped, but your environment may of course require STP.
/Fredrik