Umm... part of the problem with this game is that there is no need to be alone with one other person or in one building for more than a Day. So, the mafia can't kill, and a bomber can't place a bomb. Now, that bomb problem... I dunno. But that killing problem, a lot simpler.
As it is, you have 3 problems:
The Mafia CANNOT mafiakill.
An SK CANNOT bomb.
The Town is AMAZINGLY OVERPOWERED.
Let number of players be p.
Let there be AT MAX p - 1 houses during any phase. I'd suggest p / 2, rounded down.
Then, switch the rules to make killing of anyone in the same house as you possible and not globally announced.
Then, make movement between houses unknown and only shown at Night start.
However, you'll have to cut down Town PR's, since this makes the mafia incredi-weak.
Also, the bomber can steadily destroy houses at Night, attaching a bomb to a random house, and blowing it up the BEGINNING OF THE NEXT NIGHT. Or, the one they were in, and blowing it up whenever they want. This may require more houses. This guy would act a lot like a Doomspeaker, as once there is only one house left, he can kill everyone.
If necessary, you could only inform the people on who is in THEIR building that Night, instead of showing who is in each building. This allows for a weaker town (and unfortunately SK), and something that the Mafia/SK can lie about.
The above alleviates many of those problems.
The Mafia CAN kill, due to being in the same room with somebody and not have their kill globally announced. There is no reason to HAVE to all be in the same room, and it's unadvised to STAY in the same building with everyone, as the SK can plant a bomb in it and kill everyone.
The SK can plant bombs and kill people on a regular basis, as well as removing the number of places a person can be. If he gets to Night 4... He wins. BA BOOM!
The Town can't hide in one building permanently and basically Cop the crap out of everyone.
Downsides:
It is possible to single out the Mafia by ostracizing them to individual houses (One person in this, this and this house tonight.) However, this can be used as grounds for WIFOM (Did the mafia nokill?) and is not perfect, as there would be a couple of people to choose from. As well, giving them a Sniper to use in an EMPTY building would allow for sniper kills, exposing that one of the buildings with 1 person IS mafia, but also forcing them to hurry up with the whole thing. It's also nearly impossible to know if a building has been rigged by the SK, so this method is very gutsy.
The SK can be overpowered if he knows how many people will be in a building at any particular moment. Limiting the people seen to who's in their building ONLY would allow the SK to make a rash decision on whether to blow up House 3 or 4. Or both! He could save all the buildings until the last Night.
Bonuses:
If the Town is only told who is in their building, power roles can be used more frequently, as their actions won't be posted globally and they won't be able to identify everything based on COMMON KNOWLEDGE.
There is no way anyone can confirm that so-and-so was in such-and-such building unless someone says so or a role sees it.