Ruby, 69 bytes
->s{"#{(s.capitalize!||s)[-1]==?y?s:s+?y} Mc#{s.gsub /e?y$/,""}face"}
Explanation:
->s{ } # lambda
"#{ } Mc#{ }face" # string interpolation
(s.capitalize!||s) # returns string capitalized or nil, in that case just use the original string
[-1]==?y # if the last character == character literal for y
?s:s+?y # then s, else s + "y"
s.gsub /e?y$/,"" # global substitute
# remove "ey" from end