filling a table by triggering multiple tables on insert
The trigger code you just displayed in your question needs to be manually defined on each table you intend to copy from. For tables x, y and z the answer to your question is:
CREATE TRIGGER some_name AFTER INSERT ON `x` FOR EACH ROW INSERT INTO m (name) VALUES (NEW.name);
CREATE TRIGGER some_name AFTER INSERT ON `y` FOR EACH ROW INSERT INTO m (name) VALUES (NEW.name);
CREATE TRIGGER some_name AFTER INSERT ON `z` FOR EACH ROW INSERT INTO m (name) VALUES (NEW.name);

I suggest you make table m use MyISAM to prevent all potential deadlocks.
UPDATE 2013-10-15 19:39 EDT
First, define the table m  like this:
CREATE TABLE m
(
    id int(11) not null auto_increment, //PK
    name varchar(100) null,
    something_else varchar(100) default 'not important',
    primary key (id),
    unique key (name)
) ENGINE = MyISAM;

Then, make the trigger like this:
CREATE TRIGGER some_name AFTER INSERT ON `x`
FOR EACH ROW
    INSERT INTO m (name) VALUES (NEW.name)
    ON DUPLICATE KEY UPDATE
    SET something_else = 'new thing'
;

I would suggest that make something_else have the date and time as well
CREATE TRIGGER some_name AFTER INSERT ON `x`
FOR EACH ROW
    INSERT INTO m (name) VALUES (NEW.name)
    ON DUPLICATE KEY UPDATE
    SET something_else = CONCAT('new thing ',NOW());
;

and maybe the table where the insert came from
CREATE TRIGGER some_name AFTER INSERT ON `x`
FOR EACH ROW
    INSERT INTO m (name) VALUES (NEW.name)
    ON DUPLICATE KEY UPDATE
    SET something_else = CONCAT('new thing from x : ',NOW());
;

Give it a Try !!!