With such a complex experimental design, it is probably easiest to create a factor that encompasses all the group/treatment/time combinations, fit the model, and then make whatever comparisons you want. Something like this:
> group <- factor(rep(c("wt","mut","norm","mock"), each = 12))
> treat <- factor(rep(c("treated","untreated"), each = 6, times = 4))
> time <- factor(rep(c("time1","time2"), each = 3, times = 8))
> grps <- factor(paste(group, treat, time, sep = "_"))
> levels(grps)
[1] "mock_treated_time1" "mock_treated_time2" "mock_untreated_time1" "mock_untreated_time2"
[5] "mut_treated_time1" "mut_treated_time2" "mut_untreated_time1" "mut_untreated_time2"
[9] "norm_treated_time1" "norm_treated_time2" "norm_untreated_time1" "norm_untreated_time2"
[13] "wt_treated_time1" "wt_treated_time2" "wt_untreated_time1" "wt_untreated_time2"
Then you can fit a model using
design <- model.matrix(~0 + grps)
colnames(design) <- gsub("grps", "", colnames(design))
And then make any comparison you want, noting that this is just algebra, and most comparisons are just what you would expect them to be. In other words, if you want to compare mock treated at the two different times, it's just
contrast <- makeContrasts(mock_treated_time2 - mock_treated_time1, levels = design)
Or if you care about the difference between mock treated and untreated, averaged across the two times
contrast <- makeContrast((mock_treated_time1 + mock_treated_time2)/2 - (mock_untreated_time1 + mock_untreated_time2)/2, levels = design)
Or if you care about the interaction between time and treatment for mock samples
contrast <- makeContrast((mock_treated_time2 - mock_treated_time1) - (mock_untreated_time2 - mock_untreated_time1), levels = design)
Ideally you would make one big contrast matrix, rather than individual ones like that, but I don't want to confuse things. To do that, you just put all the comparisons in, followed by levels = design:
contrast <- makeContrast(mockTimeDiff = mock_treated_time2 - mock_treated_time1,
mockTrtDiff = (mock_treated_time1 + mock_treated_time2)/2 - (mock_untreated_time1 + mock_untreated_time2)/2,
mockInteraction = (mock_treated_time2 - mock_treated_time1) - (mock_untreated_time2 - mock_untreated_time1),
levels = design)