XML 40 R57.htm IDEA: XBRL DOCUMENT v2.4.1.9
Restatement of Consolidated Financial Statements - Schedule of Restatement Adjustments and Impact on Previously Reported Consolidated Statement of Operations (Detail) (USD $)
In Thousands, except Share data, unless otherwise specified
3 Months Ended 12 Months Ended
Dec. 31, 2013
Sep. 30, 2013
Jun. 30, 2013
Mar. 31, 2013
Dec. 31, 2012
Sep. 30, 2012
Jun. 30, 2012
Mar. 31, 2012
Dec. 31, 2013
Dec. 31, 2012
Dec. 31, 2011
Net sales $ 175,510us-gaap_Revenues $ 170,812us-gaap_Revenues $ 193,533us-gaap_Revenues $ 194,322us-gaap_Revenues $ 209,417us-gaap_Revenues $ 220,881us-gaap_Revenues $ 200,989us-gaap_Revenues $ 176,049us-gaap_Revenues $ 734,177us-gaap_Revenues $ 807,336us-gaap_Revenues $ 743,130us-gaap_Revenues
Cost of sales                 579,109us-gaap_CostOfRevenue 564,089us-gaap_CostOfRevenue 543,596us-gaap_CostOfRevenue
Gross profit 17,179us-gaap_GrossProfit 34,413us-gaap_GrossProfit 45,241us-gaap_GrossProfit 58,235us-gaap_GrossProfit 63,186us-gaap_GrossProfit 74,649us-gaap_GrossProfit 59,900us-gaap_GrossProfit 45,512us-gaap_GrossProfit 155,068us-gaap_GrossProfit 243,247us-gaap_GrossProfit 199,534us-gaap_GrossProfit
Selling, general and administrative expenses                 85,767us-gaap_SellingGeneralAndAdministrativeExpense 82,677us-gaap_SellingGeneralAndAdministrativeExpense 70,223us-gaap_SellingGeneralAndAdministrativeExpense
Research and development expenses                 87,862us-gaap_ResearchAndDevelopmentExpense 76,255us-gaap_ResearchAndDevelopmentExpense 76,589us-gaap_ResearchAndDevelopmentExpense
Restructuring and impairment charges                 8,207us-gaap_RestructuringSettlementAndImpairmentProvisions   3,599us-gaap_RestructuringSettlementAndImpairmentProvisions
Special expense for IPO incentive                     12,146mx_InitialPublicOfferingIncentive
Operating income (33,179)us-gaap_OperatingIncomeLoss (10,220)us-gaap_OperatingIncomeLoss 2,665us-gaap_OperatingIncomeLoss 13,966us-gaap_OperatingIncomeLoss 21,913us-gaap_OperatingIncomeLoss 32,492us-gaap_OperatingIncomeLoss 20,345us-gaap_OperatingIncomeLoss 9,565us-gaap_OperatingIncomeLoss (26,768)us-gaap_OperatingIncomeLoss 84,315us-gaap_OperatingIncomeLoss 36,977us-gaap_OperatingIncomeLoss
Other income (expenses)                      
Interest expense, net                 (20,360)us-gaap_InterestIncomeExpenseNonoperatingNet (22,600)us-gaap_InterestIncomeExpenseNonoperatingNet (24,984)us-gaap_InterestIncomeExpenseNonoperatingNet
Foreign currency gain (loss), net                 16,837us-gaap_ForeignCurrencyTransactionGainLossBeforeTax 57,280us-gaap_ForeignCurrencyTransactionGainLossBeforeTax (11,348)us-gaap_ForeignCurrencyTransactionGainLossBeforeTax
Loss on early extinguishment of senior notes                 (32,812)us-gaap_GainsLossesOnExtinguishmentOfDebt   (5,459)us-gaap_GainsLossesOnExtinguishmentOfDebt
Others                 2,870us-gaap_OtherNonoperatingIncomeExpense 3,890us-gaap_OtherNonoperatingIncomeExpense 1,628us-gaap_OtherNonoperatingIncomeExpense
Net other income (expense)                 (33,465)us-gaap_NonoperatingIncomeExpense 38,570us-gaap_NonoperatingIncomeExpense (40,163)us-gaap_NonoperatingIncomeExpense
Income (loss) before income taxes                 (60,233)us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest 122,885us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest (3,186)us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
Income tax expenses (benefits)                 3,970us-gaap_IncomeTaxExpenseBenefit 12,847us-gaap_IncomeTaxExpenseBenefit 8,115us-gaap_IncomeTaxExpenseBenefit
Net income (loss) (22,197)us-gaap_NetIncomeLoss 251us-gaap_NetIncomeLoss (24,668)us-gaap_NetIncomeLoss (17,589)us-gaap_NetIncomeLoss 47,009us-gaap_NetIncomeLoss 47,210us-gaap_NetIncomeLoss 2,458us-gaap_NetIncomeLoss 13,361us-gaap_NetIncomeLoss (64,203)us-gaap_NetIncomeLoss 110,038us-gaap_NetIncomeLoss (11,301)us-gaap_NetIncomeLoss
Earnings (loss) per common share-                      
Basic $ (0.64)us-gaap_EarningsPerShareBasic $ 0.01us-gaap_EarningsPerShareBasic $ (0.70)us-gaap_EarningsPerShareBasic $ (0.49)us-gaap_EarningsPerShareBasic $ 1.31us-gaap_EarningsPerShareBasic $ 1.30us-gaap_EarningsPerShareBasic $ 0.07us-gaap_EarningsPerShareBasic $ 0.36us-gaap_EarningsPerShareBasic $ (1.82)us-gaap_EarningsPerShareBasic $ 3.01us-gaap_EarningsPerShareBasic $ (0.29)us-gaap_EarningsPerShareBasic
Diluted $ (0.64)us-gaap_EarningsPerShareDiluted $ 0.01us-gaap_EarningsPerShareDiluted $ (0.70)us-gaap_EarningsPerShareDiluted $ (0.49)us-gaap_EarningsPerShareDiluted $ 1.27us-gaap_EarningsPerShareDiluted $ 1.27us-gaap_EarningsPerShareDiluted $ 0.07us-gaap_EarningsPerShareDiluted $ 0.35us-gaap_EarningsPerShareDiluted $ (1.82)us-gaap_EarningsPerShareDiluted $ 2.93us-gaap_EarningsPerShareDiluted $ (0.29)us-gaap_EarningsPerShareDiluted
Weighted average number of shares-                      
Basic 34,480,849us-gaap_WeightedAverageNumberOfSharesOutstandingBasic 35,443,820us-gaap_WeightedAverageNumberOfSharesOutstandingBasic 35,474,001us-gaap_WeightedAverageNumberOfSharesOutstandingBasic 35,539,413us-gaap_WeightedAverageNumberOfSharesOutstandingBasic 35,845,367us-gaap_WeightedAverageNumberOfSharesOutstandingBasic 36,199,655us-gaap_WeightedAverageNumberOfSharesOutstandingBasic 36,713,569us-gaap_WeightedAverageNumberOfSharesOutstandingBasic 37,524,127us-gaap_WeightedAverageNumberOfSharesOutstandingBasic 35,232,194us-gaap_WeightedAverageNumberOfSharesOutstandingBasic 36,567,684us-gaap_WeightedAverageNumberOfSharesOutstandingBasic 38,775,642us-gaap_WeightedAverageNumberOfSharesOutstandingBasic
Diluted 34,480,849us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding 37,484,601us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding 35,474,001us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding 35,539,413us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding 37,050,284us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding 37,290,612us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding 37,517,712us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding 38,282,932us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding 35,232,194us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding 37,533,391us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding 38,775,642us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding
As Previously Reported [Member]                      
Net sales   217,824us-gaap_Revenues
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
215,289us-gaap_Revenues
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
205,298us-gaap_Revenues
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
218,084us-gaap_Revenues
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
221,872us-gaap_Revenues
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
202,634us-gaap_Revenues
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
177,002us-gaap_Revenues
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
  819,592us-gaap_Revenues
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
772,831us-gaap_Revenues
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
Cost of sales                   556,091us-gaap_CostOfRevenue
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
538,515us-gaap_CostOfRevenue
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
Gross profit   71,888us-gaap_GrossProfit
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
71,048us-gaap_GrossProfit
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
65,743us-gaap_GrossProfit
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
74,288us-gaap_GrossProfit
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
76,440us-gaap_GrossProfit
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
62,858us-gaap_GrossProfit
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
49,915us-gaap_GrossProfit
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
  263,501us-gaap_GrossProfit
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
234,316us-gaap_GrossProfit
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
Selling, general and administrative expenses                   78,971us-gaap_SellingGeneralAndAdministrativeExpense
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
68,367us-gaap_SellingGeneralAndAdministrativeExpense
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
Research and development expenses                   78,723us-gaap_ResearchAndDevelopmentExpense
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
76,767us-gaap_ResearchAndDevelopmentExpense
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
Restructuring and impairment charges                     4,096us-gaap_RestructuringSettlementAndImpairmentProvisions
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
Special expense for IPO incentive                     12,146mx_InitialPublicOfferingIncentive
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
Operating income   30,625us-gaap_OperatingIncomeLoss
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
30,208us-gaap_OperatingIncomeLoss
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
22,924us-gaap_OperatingIncomeLoss
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
35,347us-gaap_OperatingIncomeLoss
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
35,582us-gaap_OperatingIncomeLoss
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
23,003us-gaap_OperatingIncomeLoss
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
11,875us-gaap_OperatingIncomeLoss
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
  105,807us-gaap_OperatingIncomeLoss
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
72,940us-gaap_OperatingIncomeLoss
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
Other income (expenses)                      
Interest expense, net                   (22,600)us-gaap_InterestIncomeExpenseNonoperatingNet
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
(24,984)us-gaap_InterestIncomeExpenseNonoperatingNet
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
Foreign currency gain (loss), net                   55,961us-gaap_ForeignCurrencyTransactionGainLossBeforeTax
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
(11,633)us-gaap_ForeignCurrencyTransactionGainLossBeforeTax
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
Loss on early extinguishment of senior notes                     (5,459)us-gaap_GainsLossesOnExtinguishmentOfDebt
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
Others                   2,119us-gaap_OtherNonoperatingIncomeExpense
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
(1,052)us-gaap_OtherNonoperatingIncomeExpense
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
Net other income (expense)                   35,480us-gaap_NonoperatingIncomeExpense
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
(43,128)us-gaap_NonoperatingIncomeExpense
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
Income (loss) before income taxes                   141,287us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
29,812us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
Income tax expenses (benefits)                   (52,014)us-gaap_IncomeTaxExpenseBenefit
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
8,019us-gaap_IncomeTaxExpenseBenefit
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
Net income (loss)   46,671us-gaap_NetIncomeLoss
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
4,436us-gaap_NetIncomeLoss
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
(7,405)us-gaap_NetIncomeLoss
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
125,286us-gaap_NetIncomeLoss
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
48,412us-gaap_NetIncomeLoss
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
4,340us-gaap_NetIncomeLoss
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
15,263us-gaap_NetIncomeLoss
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
  193,301us-gaap_NetIncomeLoss
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
21,793us-gaap_NetIncomeLoss
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
Earnings (loss) per common share-                      
Basic   $ 1.32us-gaap_EarningsPerShareBasic
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
$ 0.13us-gaap_EarningsPerShareBasic
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
$ (0.21)us-gaap_EarningsPerShareBasic
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
$ 3.50us-gaap_EarningsPerShareBasic
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
$ 1.34us-gaap_EarningsPerShareBasic
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
$ 0.12us-gaap_EarningsPerShareBasic
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
$ 0.41us-gaap_EarningsPerShareBasic
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
  $ 5.29us-gaap_EarningsPerShareBasic
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
$ 0.56us-gaap_EarningsPerShareBasic
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
Diluted   $ 1.24us-gaap_EarningsPerShareDiluted
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
$ 0.12us-gaap_EarningsPerShareDiluted
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
$ (0.21)us-gaap_EarningsPerShareDiluted
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
$ 3.38us-gaap_EarningsPerShareDiluted
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
$ 1.30us-gaap_EarningsPerShareDiluted
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
$ 0.12us-gaap_EarningsPerShareDiluted
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
$ 0.40us-gaap_EarningsPerShareDiluted
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
  $ 5.16us-gaap_EarningsPerShareDiluted
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
$ 0.55us-gaap_EarningsPerShareDiluted
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
Weighted average number of shares-                      
Basic   35,443,820us-gaap_WeightedAverageNumberOfSharesOutstandingBasic
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
35,474,001us-gaap_WeightedAverageNumberOfSharesOutstandingBasic
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
35,539,413us-gaap_WeightedAverageNumberOfSharesOutstandingBasic
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
35,845,367us-gaap_WeightedAverageNumberOfSharesOutstandingBasic
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
36,199,655us-gaap_WeightedAverageNumberOfSharesOutstandingBasic
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
36,713,569us-gaap_WeightedAverageNumberOfSharesOutstandingBasic
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
37,524,127us-gaap_WeightedAverageNumberOfSharesOutstandingBasic
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
  36,567,684us-gaap_WeightedAverageNumberOfSharesOutstandingBasic
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
38,775,642us-gaap_WeightedAverageNumberOfSharesOutstandingBasic
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
Diluted   37,493,550us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
37,125,005us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
35,539,413us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
37,074,657us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
37,324,787us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
37,566,699us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
38,298,336us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
  37,496,965us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
39,774,898us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding
/ us-gaap_StatementScenarioAxis
= us-gaap_ScenarioPreviouslyReportedMember
Adjustments [Member]                      
Net sales   (47,012)us-gaap_Revenues
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
(21,756)us-gaap_Revenues
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
(10,976)us-gaap_Revenues
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
(8,667)us-gaap_Revenues
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
(991)us-gaap_Revenues
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
(1,645)us-gaap_Revenues
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
(953)us-gaap_Revenues
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
  (12,256)us-gaap_Revenues
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
(29,701)us-gaap_Revenues
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
Cost of sales                   7,998us-gaap_CostOfRevenue
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
5,081us-gaap_CostOfRevenue
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
Gross profit   (37,475)us-gaap_GrossProfit
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
(25,807)us-gaap_GrossProfit
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
(7,508)us-gaap_GrossProfit
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
(11,102)us-gaap_GrossProfit
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
(1,791)us-gaap_GrossProfit
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
(2,958)us-gaap_GrossProfit
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
(4,403)us-gaap_GrossProfit
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
  (20,254)us-gaap_GrossProfit
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
(34,782)us-gaap_GrossProfit
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
Selling, general and administrative expenses                   3,706us-gaap_SellingGeneralAndAdministrativeExpense
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
1,856us-gaap_SellingGeneralAndAdministrativeExpense
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
Research and development expenses                   (2,468)us-gaap_ResearchAndDevelopmentExpense
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
(178)us-gaap_ResearchAndDevelopmentExpense
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
Restructuring and impairment charges                     (497)us-gaap_RestructuringSettlementAndImpairmentProvisions
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
Operating income   (40,845)us-gaap_OperatingIncomeLoss
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
(27,543)us-gaap_OperatingIncomeLoss
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
(8,958)us-gaap_OperatingIncomeLoss
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
(13,434)us-gaap_OperatingIncomeLoss
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
(3,090)us-gaap_OperatingIncomeLoss
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
(2,658)us-gaap_OperatingIncomeLoss
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
(2,310)us-gaap_OperatingIncomeLoss
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
  (21,492)us-gaap_OperatingIncomeLoss
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
(35,963)us-gaap_OperatingIncomeLoss
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
Other income (expenses)                      
Foreign currency gain (loss), net                   1,319us-gaap_ForeignCurrencyTransactionGainLossBeforeTax
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
285us-gaap_ForeignCurrencyTransactionGainLossBeforeTax
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
Others                   1,771us-gaap_OtherNonoperatingIncomeExpense
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
2,680us-gaap_OtherNonoperatingIncomeExpense
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
Net other income (expense)                   3,090us-gaap_NonoperatingIncomeExpense
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
2,965us-gaap_NonoperatingIncomeExpense
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
Income (loss) before income taxes                   (18,402)us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
(32,998)us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
Income tax expenses (benefits)                   64,861us-gaap_IncomeTaxExpenseBenefit
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
96us-gaap_IncomeTaxExpenseBenefit
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
Net income (loss)   (46,420)us-gaap_NetIncomeLoss
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
(29,104)us-gaap_NetIncomeLoss
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
(10,184)us-gaap_NetIncomeLoss
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
(78,277)us-gaap_NetIncomeLoss
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
(1,202)us-gaap_NetIncomeLoss
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
(1,882)us-gaap_NetIncomeLoss
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
(1,902)us-gaap_NetIncomeLoss
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
  (83,263)us-gaap_NetIncomeLoss
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
(33,094)us-gaap_NetIncomeLoss
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
Earnings (loss) per common share-                      
Basic   $ (1.31)us-gaap_EarningsPerShareBasic
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
$ (0.83)us-gaap_EarningsPerShareBasic
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
$ (0.28)us-gaap_EarningsPerShareBasic
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
$ (2.19)us-gaap_EarningsPerShareBasic
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
$ (0.04)us-gaap_EarningsPerShareBasic
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
$ (0.05)us-gaap_EarningsPerShareBasic
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
$ (0.05)us-gaap_EarningsPerShareBasic
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
     
Diluted   $ (1.23)us-gaap_EarningsPerShareDiluted
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
$ (0.82)us-gaap_EarningsPerShareDiluted
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
$ (0.28)us-gaap_EarningsPerShareDiluted
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
$ (2.11)us-gaap_EarningsPerShareDiluted
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
$ (0.03)us-gaap_EarningsPerShareDiluted
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
$ (0.05)us-gaap_EarningsPerShareDiluted
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
$ (0.05)us-gaap_EarningsPerShareDiluted
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
     
Adjustments [Member] | Revenue Recognition [Member]                      
Net sales                   (11,400)us-gaap_Revenues
/ us-gaap_ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis
= mx_RevenueRecognitionMember
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
(27,539)us-gaap_Revenues
/ us-gaap_ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis
= mx_RevenueRecognitionMember
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
Cost of sales                   (1,301)us-gaap_CostOfRevenue
/ us-gaap_ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis
= mx_RevenueRecognitionMember
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
(10,104)us-gaap_CostOfRevenue
/ us-gaap_ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis
= mx_RevenueRecognitionMember
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
Gross profit                   (10,099)us-gaap_GrossProfit
/ us-gaap_ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis
= mx_RevenueRecognitionMember
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
(17,435)us-gaap_GrossProfit
/ us-gaap_ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis
= mx_RevenueRecognitionMember
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
Selling, general and administrative expenses                   (530)us-gaap_SellingGeneralAndAdministrativeExpense
/ us-gaap_ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis
= mx_RevenueRecognitionMember
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
(378)us-gaap_SellingGeneralAndAdministrativeExpense
/ us-gaap_ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis
= mx_RevenueRecognitionMember
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
Operating income                   (9,569)us-gaap_OperatingIncomeLoss
/ us-gaap_ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis
= mx_RevenueRecognitionMember
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
(17,057)us-gaap_OperatingIncomeLoss
/ us-gaap_ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis
= mx_RevenueRecognitionMember
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
Other income (expenses)                      
Foreign currency gain (loss), net                   1,281us-gaap_ForeignCurrencyTransactionGainLossBeforeTax
/ us-gaap_ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis
= mx_RevenueRecognitionMember
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
121us-gaap_ForeignCurrencyTransactionGainLossBeforeTax
/ us-gaap_ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis
= mx_RevenueRecognitionMember
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
Others                   (449)us-gaap_OtherNonoperatingIncomeExpense
/ us-gaap_ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis
= mx_RevenueRecognitionMember
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
518us-gaap_OtherNonoperatingIncomeExpense
/ us-gaap_ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis
= mx_RevenueRecognitionMember
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
Net other income (expense)                   832us-gaap_NonoperatingIncomeExpense
/ us-gaap_ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis
= mx_RevenueRecognitionMember
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
639us-gaap_NonoperatingIncomeExpense
/ us-gaap_ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis
= mx_RevenueRecognitionMember
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
Income (loss) before income taxes                   (8,737)us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
/ us-gaap_ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis
= mx_RevenueRecognitionMember
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
(16,418)us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
/ us-gaap_ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis
= mx_RevenueRecognitionMember
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
Net income (loss)   (15,764)us-gaap_NetIncomeLoss
/ us-gaap_ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis
= mx_RevenueRecognitionMember
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
(9,350)us-gaap_NetIncomeLoss
/ us-gaap_ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis
= mx_RevenueRecognitionMember
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
(2,534)us-gaap_NetIncomeLoss
/ us-gaap_ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis
= mx_RevenueRecognitionMember
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
(10,423)us-gaap_NetIncomeLoss
/ us-gaap_ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis
= mx_RevenueRecognitionMember
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
3,502us-gaap_NetIncomeLoss
/ us-gaap_ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis
= mx_RevenueRecognitionMember
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
(4,730)us-gaap_NetIncomeLoss
/ us-gaap_ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis
= mx_RevenueRecognitionMember
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
2,914us-gaap_NetIncomeLoss
/ us-gaap_ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis
= mx_RevenueRecognitionMember
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
  (8,737)us-gaap_NetIncomeLoss
/ us-gaap_ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis
= mx_RevenueRecognitionMember
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
(16,418)us-gaap_NetIncomeLoss
/ us-gaap_ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis
= mx_RevenueRecognitionMember
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
Adjustments [Member] | Inventory Reserves [Member]                      
Cost of sales                   7,810us-gaap_CostOfRevenue
/ us-gaap_ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis
= mx_InventoryReservesMember
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
10,075us-gaap_CostOfRevenue
/ us-gaap_ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis
= mx_InventoryReservesMember
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
Gross profit                   (7,810)us-gaap_GrossProfit
/ us-gaap_ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis
= mx_InventoryReservesMember
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
(10,075)us-gaap_GrossProfit
/ us-gaap_ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis
= mx_InventoryReservesMember
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
Operating income                   (7,810)us-gaap_OperatingIncomeLoss
/ us-gaap_ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis
= mx_InventoryReservesMember
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
(10,075)us-gaap_OperatingIncomeLoss
/ us-gaap_ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis
= mx_InventoryReservesMember
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
Other income (expenses)                      
Income (loss) before income taxes                   (7,810)us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
/ us-gaap_ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis
= mx_InventoryReservesMember
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
(10,075)us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
/ us-gaap_ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis
= mx_InventoryReservesMember
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
Net income (loss)   (17,825)us-gaap_NetIncomeLoss
/ us-gaap_ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis
= mx_InventoryReservesMember
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
(6,336)us-gaap_NetIncomeLoss
/ us-gaap_ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis
= mx_InventoryReservesMember
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
(3,860)us-gaap_NetIncomeLoss
/ us-gaap_ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis
= mx_InventoryReservesMember
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
  (2,665)us-gaap_NetIncomeLoss
/ us-gaap_ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis
= mx_InventoryReservesMember
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
2,352us-gaap_NetIncomeLoss
/ us-gaap_ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis
= mx_InventoryReservesMember
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
(4,479)us-gaap_NetIncomeLoss
/ us-gaap_ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis
= mx_InventoryReservesMember
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
  (7,810)us-gaap_NetIncomeLoss
/ us-gaap_ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis
= mx_InventoryReservesMember
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
(10,075)us-gaap_NetIncomeLoss
/ us-gaap_ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis
= mx_InventoryReservesMember
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
Adjustments [Member] | Understated Employee Benefits [Member]                      
Cost of sales                   833us-gaap_CostOfRevenue
/ us-gaap_ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis
= mx_UnderstatedEmployeeBenefitsMember
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
1,740us-gaap_CostOfRevenue
/ us-gaap_ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis
= mx_UnderstatedEmployeeBenefitsMember
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
Gross profit                   (833)us-gaap_GrossProfit
/ us-gaap_ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis
= mx_UnderstatedEmployeeBenefitsMember
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
(1,740)us-gaap_GrossProfit
/ us-gaap_ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis
= mx_UnderstatedEmployeeBenefitsMember
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
Selling, general and administrative expenses                   121us-gaap_SellingGeneralAndAdministrativeExpense
/ us-gaap_ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis
= mx_UnderstatedEmployeeBenefitsMember
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
323us-gaap_SellingGeneralAndAdministrativeExpense
/ us-gaap_ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis
= mx_UnderstatedEmployeeBenefitsMember
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
Research and development expenses                   137us-gaap_ResearchAndDevelopmentExpense
/ us-gaap_ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis
= mx_UnderstatedEmployeeBenefitsMember
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
409us-gaap_ResearchAndDevelopmentExpense
/ us-gaap_ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis
= mx_UnderstatedEmployeeBenefitsMember
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
Operating income                   (1,091)us-gaap_OperatingIncomeLoss
/ us-gaap_ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis
= mx_UnderstatedEmployeeBenefitsMember
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
(2,472)us-gaap_OperatingIncomeLoss
/ us-gaap_ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis
= mx_UnderstatedEmployeeBenefitsMember
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
Other income (expenses)                      
Income (loss) before income taxes                   (1,091)us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
/ us-gaap_ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis
= mx_UnderstatedEmployeeBenefitsMember
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
(2,472)us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
/ us-gaap_ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis
= mx_UnderstatedEmployeeBenefitsMember
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
Net income (loss)           (3,378)us-gaap_NetIncomeLoss
/ us-gaap_ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis
= mx_UnderstatedEmployeeBenefitsMember
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
      (1,091)us-gaap_NetIncomeLoss
/ us-gaap_ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis
= mx_UnderstatedEmployeeBenefitsMember
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
(2,472)us-gaap_NetIncomeLoss
/ us-gaap_ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis
= mx_UnderstatedEmployeeBenefitsMember
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
Adjustments [Member] | Settlement Obligations [Member]                      
Net sales                   1,364us-gaap_Revenues
/ us-gaap_ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis
= mx_SettlementObligationsMember
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
 
Cost of sales                   485us-gaap_CostOfRevenue
/ us-gaap_ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis
= mx_SettlementObligationsMember
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
2,116us-gaap_CostOfRevenue
/ us-gaap_ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis
= mx_SettlementObligationsMember
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
Gross profit                   879us-gaap_GrossProfit
/ us-gaap_ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis
= mx_SettlementObligationsMember
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
(2,116)us-gaap_GrossProfit
/ us-gaap_ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis
= mx_SettlementObligationsMember
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
Operating income                   879us-gaap_OperatingIncomeLoss
/ us-gaap_ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis
= mx_SettlementObligationsMember
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
(2,116)us-gaap_OperatingIncomeLoss
/ us-gaap_ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis
= mx_SettlementObligationsMember
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
Other income (expenses)                      
Income (loss) before income taxes                   879us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
/ us-gaap_ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis
= mx_SettlementObligationsMember
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
(2,116)us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
/ us-gaap_ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis
= mx_SettlementObligationsMember
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
Net income (loss)   1,412us-gaap_NetIncomeLoss
/ us-gaap_ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis
= mx_SettlementObligationsMember
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
(11,561)us-gaap_NetIncomeLoss
/ us-gaap_ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis
= mx_SettlementObligationsMember
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
            879us-gaap_NetIncomeLoss
/ us-gaap_ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis
= mx_SettlementObligationsMember
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
(2,116)us-gaap_NetIncomeLoss
/ us-gaap_ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis
= mx_SettlementObligationsMember
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
Adjustments [Member] | Tax Matters [Member]                      
Selling, general and administrative expenses                   773us-gaap_SellingGeneralAndAdministrativeExpense
/ us-gaap_ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis
= mx_IncomeTaxMattersMember
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
1,223us-gaap_SellingGeneralAndAdministrativeExpense
/ us-gaap_ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis
= mx_IncomeTaxMattersMember
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
Operating income                   (773)us-gaap_OperatingIncomeLoss
/ us-gaap_ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis
= mx_IncomeTaxMattersMember
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
(1,223)us-gaap_OperatingIncomeLoss
/ us-gaap_ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis
= mx_IncomeTaxMattersMember
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
Other income (expenses)                      
Foreign currency gain (loss), net                   (3)us-gaap_ForeignCurrencyTransactionGainLossBeforeTax
/ us-gaap_ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis
= mx_IncomeTaxMattersMember
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
 
Net other income (expense)                   (3)us-gaap_NonoperatingIncomeExpense
/ us-gaap_ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis
= mx_IncomeTaxMattersMember
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
 
Income (loss) before income taxes                   (776)us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
/ us-gaap_ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis
= mx_IncomeTaxMattersMember
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
(1,223)us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
/ us-gaap_ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis
= mx_IncomeTaxMattersMember
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
Income tax expenses (benefits)                   64,861us-gaap_IncomeTaxExpenseBenefit
/ us-gaap_ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis
= mx_IncomeTaxMattersMember
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
96us-gaap_IncomeTaxExpenseBenefit
/ us-gaap_ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis
= mx_IncomeTaxMattersMember
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
Net income (loss)   (11,139)us-gaap_NetIncomeLoss
/ us-gaap_ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis
= mx_IncomeTaxMattersMember
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
(1,395)us-gaap_NetIncomeLoss
/ us-gaap_ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis
= mx_IncomeTaxMattersMember
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
(1,119)us-gaap_NetIncomeLoss
/ us-gaap_ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis
= mx_IncomeTaxMattersMember
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
(66,236)us-gaap_NetIncomeLoss
/ us-gaap_ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis
= mx_IncomeTaxMattersMember
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
        (65,637)us-gaap_NetIncomeLoss
/ us-gaap_ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis
= mx_IncomeTaxMattersMember
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
(1,319)us-gaap_NetIncomeLoss
/ us-gaap_ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis
= mx_IncomeTaxMattersMember
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
Adjustments [Member] | Account Classification [Member]                      
Net sales                   (2,220)us-gaap_Revenues
/ us-gaap_ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis
= mx_AccountClassificationMember
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
(2,162)us-gaap_Revenues
/ us-gaap_ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis
= mx_AccountClassificationMember
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
Cost of sales                   2,651us-gaap_CostOfRevenue
/ us-gaap_ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis
= mx_AccountClassificationMember
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
707us-gaap_CostOfRevenue
/ us-gaap_ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis
= mx_AccountClassificationMember
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
Gross profit                   (4,871)us-gaap_GrossProfit
/ us-gaap_ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis
= mx_AccountClassificationMember
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
(2,869)us-gaap_GrossProfit
/ us-gaap_ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis
= mx_AccountClassificationMember
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
Selling, general and administrative expenses                     497us-gaap_SellingGeneralAndAdministrativeExpense
/ us-gaap_ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis
= mx_AccountClassificationMember
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
Research and development expenses                   (2,651)us-gaap_ResearchAndDevelopmentExpense
/ us-gaap_ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis
= mx_AccountClassificationMember
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
(707)us-gaap_ResearchAndDevelopmentExpense
/ us-gaap_ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis
= mx_AccountClassificationMember
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
Restructuring and impairment charges                     (497)us-gaap_RestructuringSettlementAndImpairmentProvisions
/ us-gaap_ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis
= mx_AccountClassificationMember
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
Operating income                   (2,220)us-gaap_OperatingIncomeLoss
/ us-gaap_ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis
= mx_AccountClassificationMember
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
(2,162)us-gaap_OperatingIncomeLoss
/ us-gaap_ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis
= mx_AccountClassificationMember
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
Other income (expenses)                      
Others                   2,220us-gaap_OtherNonoperatingIncomeExpense
/ us-gaap_ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis
= mx_AccountClassificationMember
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
2,162us-gaap_OtherNonoperatingIncomeExpense
/ us-gaap_ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis
= mx_AccountClassificationMember
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
Net other income (expense)                   2,220us-gaap_NonoperatingIncomeExpense
/ us-gaap_ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis
= mx_AccountClassificationMember
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
2,162us-gaap_NonoperatingIncomeExpense
/ us-gaap_ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis
= mx_AccountClassificationMember
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
Adjustments [Member] | Cost Center Allocation [Member]                      
Cost of sales                   (3,231)us-gaap_CostOfRevenue
/ us-gaap_ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis
= mx_CostAllocationMember
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
 
Gross profit                   3,231us-gaap_GrossProfit
/ us-gaap_ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis
= mx_CostAllocationMember
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
 
Selling, general and administrative expenses                   3,286us-gaap_SellingGeneralAndAdministrativeExpense
/ us-gaap_ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis
= mx_CostAllocationMember
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
 
Research and development expenses                   (55)us-gaap_ResearchAndDevelopmentExpense
/ us-gaap_ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis
= mx_CostAllocationMember
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
 
Adjustments [Member] | Other Adjustments [Member]                      
Cost of sales                   751us-gaap_CostOfRevenue
/ us-gaap_ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis
= mx_OtherAdjustmentsMember
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
547us-gaap_CostOfRevenue
/ us-gaap_ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis
= mx_OtherAdjustmentsMember
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
Gross profit                   (751)us-gaap_GrossProfit
/ us-gaap_ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis
= mx_OtherAdjustmentsMember
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
(547)us-gaap_GrossProfit
/ us-gaap_ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis
= mx_OtherAdjustmentsMember
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
Selling, general and administrative expenses                   56us-gaap_SellingGeneralAndAdministrativeExpense
/ us-gaap_ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis
= mx_OtherAdjustmentsMember
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
191us-gaap_SellingGeneralAndAdministrativeExpense
/ us-gaap_ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis
= mx_OtherAdjustmentsMember
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
Research and development expenses                   101us-gaap_ResearchAndDevelopmentExpense
/ us-gaap_ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis
= mx_OtherAdjustmentsMember
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
120us-gaap_ResearchAndDevelopmentExpense
/ us-gaap_ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis
= mx_OtherAdjustmentsMember
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
Operating income                   (908)us-gaap_OperatingIncomeLoss
/ us-gaap_ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis
= mx_OtherAdjustmentsMember
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
(858)us-gaap_OperatingIncomeLoss
/ us-gaap_ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis
= mx_OtherAdjustmentsMember
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
Other income (expenses)                      
Foreign currency gain (loss), net                   41us-gaap_ForeignCurrencyTransactionGainLossBeforeTax
/ us-gaap_ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis
= mx_OtherAdjustmentsMember
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
164us-gaap_ForeignCurrencyTransactionGainLossBeforeTax
/ us-gaap_ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis
= mx_OtherAdjustmentsMember
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
Net other income (expense)                   41us-gaap_NonoperatingIncomeExpense
/ us-gaap_ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis
= mx_OtherAdjustmentsMember
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
164us-gaap_NonoperatingIncomeExpense
/ us-gaap_ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis
= mx_OtherAdjustmentsMember
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
Income (loss) before income taxes                   (867)us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
/ us-gaap_ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis
= mx_OtherAdjustmentsMember
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
(694)us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
/ us-gaap_ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis
= mx_OtherAdjustmentsMember
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
Net income (loss)   $ (658)us-gaap_NetIncomeLoss
/ us-gaap_ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis
= mx_OtherAdjustmentsMember
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
$ (462)us-gaap_NetIncomeLoss
/ us-gaap_ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis
= mx_OtherAdjustmentsMember
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
$ (184)us-gaap_NetIncomeLoss
/ us-gaap_ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis
= mx_OtherAdjustmentsMember
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
$ (1,618)us-gaap_NetIncomeLoss
/ us-gaap_ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis
= mx_OtherAdjustmentsMember
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
$ 1,339us-gaap_NetIncomeLoss
/ us-gaap_ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis
= mx_OtherAdjustmentsMember
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
$ 496us-gaap_NetIncomeLoss
/ us-gaap_ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis
= mx_OtherAdjustmentsMember
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
$ (337)us-gaap_NetIncomeLoss
/ us-gaap_ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis
= mx_OtherAdjustmentsMember
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
  $ (867)us-gaap_NetIncomeLoss
/ us-gaap_ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis
= mx_OtherAdjustmentsMember
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember
$ (694)us-gaap_NetIncomeLoss
/ us-gaap_ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis
= mx_OtherAdjustmentsMember
/ us-gaap_StatementScenarioAxis
= us-gaap_RestatementAdjustmentMember